我们日常工作一般会使用源码包安装软件,因为源码包相对灵活多变,操作自由,唯一的问题就是容易编译出错。rpm包安装简单方便,唯一问题就是不能自定义参数且更新的速度相对于源码慢很多。
下面我们就研究一下如何自己制作rpm包,我们以Nginx源码为例
1、查看操作系统版本和内核版本
2、创建相关目录
/usr/src/redhat/SOURCES //存放源代码,补丁,美国服务器,图标等文件。/usr/src/redhat/SPECS//存放用于管理rpm制作进程的spec文件。/usr/src/redhat/BUILD //解压后的文件存放在这里。/usr/src/redhat/RPMS //存放由rpmbuild制作好的二进制包。/usr/src/redhat/SRPMS //存放由rpmbuild制作好的源码包。
3、下载Nginx源码包
下载源码包到SOURCES目录,不需要解压。
4、手工创建SPEC文件,由于spec文件是由spec语言编写的,请注意spec语言的语法。
SPEC文件内容如下:
5、开始RPM制作
在制作RPM包之前,需要安装必要的编译工具,香港服务器,如rpmbuild,gcc等。
开始编译生成rpm包
cd/usr/src/redhat/SPECS/
rpmbuild-bbnginx.spec //-ba 参数表示同时生成二进制包和源码包 -bb 参数表示只生成二进制包
经过一段时间的编译后最终生成了rpm包文件
#############################################省略部分显示##############################################
如图所示,在/usr/src/redhat/RPMS/x86_64/该目录下生成了我们需要的rpm包,免备案空间,由于我编译的操作系统平台是64bit的,所以生成的rpm包也是64位的文件。在指定的目录下生成RPM,通常用%_topdir变量,需要在宏配置文件中指定,配置文件称为macrofiles,它们通常为 /usr/lib/rpm/macros:/usr/lib/rpm/macros.*:~/.rpmmacros,这个在rhel 5.8中可以通过rpmbuild –showrc | grep macrofiles 查看,我们这里在.rpmmacros文件中定义了生产rpm包的路径为/usr/src/redhat
最后安装生成的rpm包
至此Nginx源码制作并安装成功!
本文出自 “老徐的私房菜” 博客,谢绝转载!
人之所以有一张嘴,而有两只耳朵,原因是听的要比说的多一倍。