CentOS下使用rpm-build制作nginx的RPM包

分类:CentOS教程 阅读:2040 次

一、RPM包的分类

RPM有五种基本的操作功能:安装、卸载、升级、查询和验证。

linux软件包分为两大类:

(1)二进制类包,包括rpm安装包(一般分为i386和x86等几种)

(2)源码类包,源码包和开发包应该归位此类(.src.rpm)。

有时候为了方便源码包的安装,和我们自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,当有了源码包就可以直接编译得到二进制安装包和其他任意包。spec file是制作rpm包最核心的部分,rpm包的制作就是根据spec file来实现的。在制作自定义rpm包的时候最好不要使用管理员进行,因为管理员权限过大,如果一个命令写错了,结果可能是灾难性的,而制件一个rpm包普通用户完全可以实现

二、修改宏及自定义车间位置

在redhat下,rpm包的默认制作路径在/usr/src/redhat下,这其中包含了6个目录(要求全部大写)

但centos并没有该目录,因此,我们不得不自定义工作车间,即使在redhat下有该目录,一般也是自定义到普通用户的家目录下的

rpmbuild --showrc 显示所有的宏,以下划线开头,一个下划线:定义环境的使用情况,二个下划线:通常定义的是命令,为什么要定义宏,因为不同的系统,命令的存放位置可能不同,所以通过宏的定义找到命令的真正存放位置

查看默认工作车间,所以只要改变了这个宏,我们就可以自定义工作车间了

三、rpm包制作原理图

CentOS下使用rpm-build制作nginx的RPM包

四、制作rpm包

1、安装rpm-build

2、增加普通用户并修改工作车间目录

3、收集源码文件

(1)文件列表

(2)nginx-1.7.7.tar.gz 源码包

(3)init.nginx 脚本文件

(4)fastcgi_params 参数

4、在 SPECS 目录下创建 nginx.spec

5、制作rpm包

五、rpm包的签名

1、查询软件包信息

2、使用gpg方式生成签名密钥

3、查看生成的密钥

4、导出公钥以供验证

5、在~/.rpmmacros宏中定义加密密钥

6、为rpm包签名

7、将公钥导入rpm包

8、验证

9、重新安装nginx,验证安装包的签名信息

到这里,一个完整的 rpm 包就制作完成了!