RPM制作

  1. # 这个区域定义的Name、Version这些字段对应的值可以在后面  
  2. # 通过%{name},%{version}这样的方式来引用,类似于C语言中的宏  
  3.    
  4. # Name制定了软件的名称  
  5. Name:       nginx  
  6. # 软件版本  
  7. Version:    1.5.2   
  8. # 释出号,也就是第几次制作rpm  
  9. Release:    1%{?dist}  
  10. # 软件的介绍,必须设置,最好不要超过50个字符  
  11. Summary:    Nginx from WangYing  
  12.    
  13. # 软件的分组,可以通过/usr/share/doc/rpm-4.8.0/GROUPS文件中选择,也可以  
  14. # 在相应的分类下,自己创建一个新的类型,例如这里的Server  
  15. Group:      Application/Server  
  16. # 许可证类型  
  17. License:    GPL  
  18. # 软件的源站  
  19. URL:        http://nginx.org  
  20. # 制作rpm包的人员信息  
  21. Packager:   WangYing <justlinux2010@gmail.com>  
  22. # 源码包的名称,在%_topdir/SOURCE下,如果有多个源码包的话,可以通过  
  23. # Source1、Source2这样的字段来指定其他的源码包  
  24. Source0:    %{name}-%{version}.tar.gz  
  25. # BuildRoot指定了make install的测试安装目录,通过这个目录我们可以观察  
  26. # 生成了哪些文件,方便些files区域。如果在files区域中写的一些文件报  
  27. # 不存在的错误,可以查看%_topdir/BUILDROOT目录来检查有哪些文件。  
  28. BuildRoot:  %_topdir/BUILDROOT  
  29. # 指定安装的路径  
  30. Prefix:     /usr/local/nginx-1.5.2  
  31.    
  32. # 制作过程需要的工具或软件包  
  33. BuildRequires:  gcc,make  
  34. # 安装时依赖的软件包  
  35. Requires: pcre,pcre-devel,openssl  
  36.    
  37. # 软件的描述,这个可以尽情地写  
  38. %description  
  39. Nginx is a http server  
  40.    
  41. # %prep指定了在编译软件包之前的准备工作,这里的  
  42. # setup宏的作用是静默模式解压并切换到源码目录中,  
  43. # 当然你也可以使用tar命令来解压  
  44. %prep  
  45. %setup -q  
  46.    
  47. # 编译阶段,和直接编译源代码类似,具体的操作或指定的一些参数由configure文件决定。  
  48. %build  
  49. CFLAGS="-pipe -O2 -g -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror" ./configure --prefix=%{prefix}  
  50. # make后面的意思是:如果是多处理器,则并行编译  
  51. make %{?_smp_mflags}  
  52.    
  53. # 安装阶段  
  54. %install  
  55. # 先删除原来的测试安装的,只有在制作失败了%{buildroot}目录才会有内容,  
  56. # 如果成功的话,目录下会被清除。  
  57. # %{buildroot}指向的目录不是BuildRoot(%_topdir/BUILDROOT)指定的目录,  
  58. # 而是该目录下名称与生成的rpm包名称相同的子目录。例如我的是  
  59. # /usr/src/redhat/BUILDROOT/nginx-1.5.2-1.el6.x86_64  
  60. rm -rf %{buildroot}  
  61. # 指定安装目录,注意不是真实的安装目录,是在制作rpm包的时候指定的  
  62. # 安装目录,如果不指定的话,默认就会安装到configure命令中指定的prefix路径,  
  63. # 所以这里一定要指定DESTDIR  
  64. make install DESTDIR=%{buildroot}  
  65.    
  66. # 安装前执行的脚本,语法和shell脚本的语法相同  
  67. %pre  
  68.    
  69. # 安装后执行的脚本  
  70. %post  
  71.    
  72. # 卸载前执行的脚本,我这里的做的事情是在卸载前将nginx服务器停掉  
  73. %preun  
  74.     MSG=`ps aux | grep nginx | grep -v "grep"`  
  75.     if [ -z "$MSG" ];then  
  76.         killall nginx 1>/dev/null 2>/dev/null  
  77.     fi  
  78.    
  79. # 卸载完成后执行的脚本  
  80. %postun  
  81.     rm -rf %{prefix}  
  82.    
  83. # 清理阶段,在制作完成后删除安装的内容  
  84. %clean  
  85. rm -rf %{buildroot}  
  86.    
  87. #指定要包含的文件  
  88. %files  
  89. #设置默认权限,如果没有指定,则继承默认的权限  
  90. %defattr  (-,root,root,0755)  
  91. %{prefix}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值