centos 7 环境下构建 nginx 1.30 rpm包
·
一、背景
由于 nginx 存在安全漏洞,需要升级至新版本,目前最新的稳定版本为1.30。但是主机老旧,操作系统版本还是centos 7,而官网提供的rpm包,基于centos 7最高版本为1.26,不能满足要求。考虑到需要升级的nginx数量较多,决定基于centos 7自行构建一个1.30版本的nginx rpm包。
二、准备工作
2.1 下载srpm文件
官网仓库中提供的基于centos 7的srpm包,最高版本只到1.26,我们选择相对比较接近的基于centos 8的的srpm文件:
在https://nginx.org/packages/centos/8/SRPMS/下载nginx-1.30.1-1.el8.ngx.src.rpm文件。
2.2 准备构建环境
之前的文章里已经介绍了构建rpm包的基本方法,这里不再赘述。root用户下运行命令如下:
yum install -y rpm-build
yum install -y rpmdevtools
rpmdev-setuptree
使用rpm命令:
rpm -ivh nginx-1.30.1-1.el8.ngx.src.rpm
此时,在 /root/rpmbuild 目录下,SOURCES目录下会产生源代码压缩包、脚本、文件等,SPECS目录会产生spec文件。
三、构建
centos 8 的spec文件通用性很好,可以直接在centos 7 上进行构建,无需修改。
使用rpmbuild -bb nginx.spec命令进行构建,如果缺少依赖包,按照提示补全。例如我的环境下缺少pcre2-devel,使用yum install -y pcre2-devel命令安装。
完成后在 /root/rpmbuild/RPMS/x86_64 目录下对应架构目录就会生成编译好的rpm包:nginx-1.30.1-1.el7.ngx.x86_64.rpm。
更多推荐

所有评论(0)