请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

本文来自

安全运维工具

安全运维工具

人已关注

请添加对本版块的简短描述

CentOS 7 下编译Nginx并打包成rpm

[复制链接]
560 abc 发表于 2019-2-21 17:13:05
本帖最后由 abc 于 2019-2-21 17:48 编辑

折腾Nginx。作为一个Web从业人员,越来越觉得Nginx太强大了。

于是便花了几天时间研究在Debian及CentOS下从源代码开始将Nginx打包成deb/rpm,这篇是记录CentOS 7 下将Nginx打包成rpm。

安装软件之前肯定是先要更新:

yum update
安装编译环境:

yum install gcc gcc-c++ rpm-build   rpmdevtools
安装Nginx所依赖的包:

yum install -y openssl-devel zlib-devel pcre-devel gd-devel redhat-lsb
新建用户:

name=rpmbuild

useradd $name

echo "$name ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

su - $name
进入SOURCES目录:

cd ~/SOURCES/
在新建的用户home目录创建接下来要用到的几个文件夹:

rpmdev-setuptree
这样在rpmbuild的home目录下面有了这几个目录:

BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
到这个地址找到合适的源码包下载: nginx package

下载源码,当前(2016-06-16)最新为nginx-1.10.1-1.el7.ngx.src.rpm:

wget http://nginx.org/packages/centos ... 1-1.el7.ngx.src.rpm
解压:

rpm2cpio nginx-1.10.1-1.el7.ngx.src.rpm |cpio -dvi
里面应该有这么些个文件:

[root@790fde35905f SOURCES]# ls
COPYRIGHT nginx-debug.sysconf nginx.sysconf
logrotate nginx.conf nginx.upgrade.sh
nginx-1.10.1 nginx.init.in nginx.vh.default.conf
nginx-1.10.1-1.el7.ngx.src.rpm nginx.service njs-1c50334fbea6.tar.gz
nginx-1.10.1.tar.gz nginx.spec
nginx-debug.service nginx.suse.logrotate
开始编译:

rpmbuild -ba nginx.spec
如果没有意外的话,在~/rpmbuild/RPMS/x86_64下面应该生成了对应的rpm包:

nginx-1.10.1-1.el7.centos.ngx.x86_64.rpm
nginx-debuginfo-1.10.1-1.el7.centos.ngx.x86_64.rpm
nginx-module-geoip-1.10.1-1.el7.centos.ngx.x86_64.rpm
nginx-module-image-filter-1.10.1-1.el7.centos.ngx.x86_64.rpm
nginx-module-njs-1.10.1.0.0.20160414.1c50334fbea6-1.el7.centos.ngx.x86_64.rpm
nginx-module-perl-1.10.1-1.el7.centos.ngx.x86_64.rpm
nginx-module-xslt-1.10.1-1.el7.centos.ngx.x86_64.rpm
上面是按照Nginx默认的configure配置打包成的rpm,既然选择了自主打包而不是使用Nginx官方打包好的rpm,肯定是有些模块Nginx打包的不包含,自主打包也就是想把我们需要的模块加进Nginx而又不想在生产服务器安装一大堆包,所以,为了加进我们所需要的模块,我们可以更改上面哪个nginx.spec文件,加进我们所需要的模块,怎么加进去可以参考我先前的一篇文章Debian 8 下编译Nginx笔记。

进过我实际编译,暂时发现我所需要的两个额外模块Google Filter和PageSpeed中Google Filter可以正常编译进去,但是PageSpeed会报错,暂时没找到解决办法,有时间我再折腾一下。

https://www.centos.bz/2017/09/ce ... %8C%85%E6%88%90rpm/

1.确认lsb_release是否安装
[root@localhost Desktop]# lsb_release -a

bash: lsb_release: command not found...


这就说明没有安装。

2.安装lsb_release
使用yum安装lsb,具体命令如下:

[root@localhost Desktop]# yum install -y redhat-lsb
---------------------
作者:xufengzhu
来源:CSDN
原文:https://blog.csdn.net/xufengzhu/article/details/73330741
版权声明:本文为博主原创文章,转载请附上博文链接!
安装rpm工具
(1)安装 rpmbuild,rpmdevtools
yum install -y rpm-build rpmdevtools

1安装完成后可使用rpm的各命令

(2)生成rpmbuild的工作目录
rpmdev-setuptree


https://blog.csdn.net/a877415861/article/details/74278873



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表