码迷,mamicode.com
首页 > 其他好文 > 详细

通过nginx源码包制作rpm包

时间:2017-07-12 23:35:07      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:nginx、制作rpm软件包

目录
目录... 1
版权声明:... 2
文档信息:... 2
一、通过nginx源码包制作rpm包... 2
1.制作前环境准备:... 3
2.创建普通用户... 3
二、编写spec规则... 3
1.在模板里添加规则... 3
2.关于保存*.spec报错的解决... 4
2.1解决办法:... 5
2.2使用rpmbuild命令生成 rpm包... 5
三、在其他主机测试rpm包... 5
1. 需要按照依赖包... 5
2. 上传并安装nginxRPM包... 5
3. 查看端口开启状态... 5
4. 查看rpm包信息... 6
 
 
 
文档信息:
文档作者:amun
文档版本: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

本文出自 “微凉清风的博客” 博客,请务必保留此出处http://amunlinux.blog.51cto.com/13112118/1946768

通过nginx源码包制作rpm包

标签:nginx、制作rpm软件包

原文地址:http://amunlinux.blog.51cto.com/13112118/1946768

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!