目录 目录... 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
原文地址:http://amunlinux.blog.51cto.com/13112118/1946768