您的位置:首页 > 运维架构 > Nginx

通过nginx源码包制作rpm包

2017-07-12 16:26 459 查看
文档信息:
文档作者:amunlinux
文档版本:Version 1.1
修改记录:2017-04-04
系统环境:CentOS 6.8 64 bit

一、通过nginx源码包制作rpm包

1.制作前环境准备:

安装依赖包
yum -y install rpm-build pcre-devel openssl-devel gccgcc-c++ make

2.创建普通用户
创建普通用户制作,使用普通用户制作rpm包(因为root权限太大);
useraddlianlian
passwdlianlian
su– lianlian
exit               退出不了,就用su 切换
将nginx包上传root/home/
mvnginx-1.6.2.tar.gz /home/lianlian
su– lianlian
llnginx-1.6.2.tar.gz

二、编写spec规则
有默认模板的,后缀为.spec
以下是模板的一部分内容,有的根本用不到。所以个别不用写,照着填就好

1.在模板里添加规则
vim nginx.spec
默认模板内容:
Name        定义该 rpm 包的名字,必须要填写。
Version     定义该 rpm 包的版本号,建议和源码包的名称保持一致。
Release     1%{?dist}不需要管,系统会在版本号之后自动补齐,就是经常看到的rpm 名中的 el6 部分
Summary     定义关于该 rpm包的一些介绍。

Group                     定义软件包所属类型。

License                   软件授权类型,比如 GPL、Commercial、Shareware。

URL                       定义软件作者的主页。

Source0:                  定义需要用到的源码包名字
BuildRoot:                不需要管,系统用 mkstemp定义安装或编译时使用的虚拟目录
作

BuildRequires:            定义源码包配置时需要用到工具。该选项可有可无。

Requires:                 定义rpm 安装的时候的依赖关系。该选项可有可无。

%description              定义描述信息,注意这里要另起一行写

%prep                     定义 rpm 包安装前执行的脚本。在对软件进行打包前,我们还进行其他

操作。比如解压 tar.gz 文件。%prep 主要与%setup –q 命令配合使用,建议使用默                           认值即可。

%setup –q                 不需要管

%build                    定义源码包的安装配置选项

%install                  不需要管,系统执行安装动作

%files                    定义安装完之后生成的目录,可以参考源码包安装完毕之后生成的目录

%config/usr/local/httpd/conf/*        代表配置文件

%post                     定义 rpm 包安装后执行的脚本。我们在安装完毕 rpm 包后,执行软件初

始化的动作,就可以通过%post 来达到目的。比如:apache在安装后,将 apachectl                           拷贝成 httpd 等操作。默认 spec 模版文件不存在此选项。

%preun                    定义 rpm 包卸载前执行的脚本,该选项主要用于软件升级的时候会执行。
默认 spec 模版文件不存在此选项。

%postun                   定义 rpm 包卸载后执行的脚本。默认 spec 模版文件不存在此选项。

%changelog                软件的变更日志。该选项可有可无。

2.关于保存*.spec报错的解决
上述规则编写完成后保存时会自动报一个错误,将会产生一个rpmduild的文件夹,但这是正常的。

2.1解决办法:
移动源码包和spec规则文件到rpmbuild文件夹下
cpnginx-1.6.2.tar.gz ./rpmbuild/SOURCES/
cp nginx.spec./rpmbuild/SPECS/

2.2使用rpmbuild命令生成 rpm包
cd rpmbuild/SPECS/                        或在/home/下也可以
rpmbuild -ba nginx.spec                 -ba 是输出过程信息

三、在其他主机测试rpm包
1. 需要按照依赖包
yum -y installwireshark-gnome

2. 上传并安装nginx RPM包
[root@xurui~]# rpm -ivh nginx-1.6.2-lianlian.e16.x86_64.rpm
Preparing...               ########################################### [100%]
1:nginx                 ########################################### [100%]

3. 查看端口开启状态
[root@xurui~]# netstat -anpt |grep :80
tcp        0     0 0.0.0.0:80                 0.0.0.0:*                   LISTEN      2130/nginx
tcp        0     0 0.0.0.0:8009               0.0.0.0:*                   LISTEN      1276/rpc.statd

4. 查看rpm包信息
[root@xurui~]# rpm -qi nginx
Name        : nginx                        Relocations: (notrelocatable)
Version     : 1.6.2                             Vendor: (none)
Release     : lianlian.e16                  Build Date: 2017年04月04日 星期二 01时37分11秒
InstallDate: 2017年03月21日星期二 11时44分28秒      Build Host: xr-c6.8
Group       : System nginx/Web              Source RPM: nginx-1.6.2-lianlian.e16.src.rpm
Size        : 610255                           License: GPL
Signature   : (none)
URL         : http://www.nginx.org Summary     : This is nginx server
Description:
Systemnginx/web by lianlian
[root@xurui~]#

End
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  制作 rpm nginx