一、预先准备
1、搭建环境nginx编译安装
2、安装目录/application/nginx-1.6.2/
二、解决依赖安装
yum -y install ruby rubygems ruby-devel gem sources -a http://ruby.taobao.org/ gem sources --remove http://rubygems.org/ gem install fpm
三、fpm打包命令参数介绍
详细使用见fpm --help
常用参数如下
-s INPUT_TYPE 指定源类型
-t OUTPUT_TYPE 指定目标类型,即想要制作包的类型
-n NAME 指定包的名字
-v 指定包的版本
-C CHDIR 指定打包的路径
-d --depends DEPENDENCY 指定依赖包
-f FORCE 强制覆盖之前打的包
-p --package OUTPUT输出的安装包的目录,不想放在当前目录下就需要指定
--post-install 软件包安装完成之后要运行的脚本,和--after-install相同
--pre-install 软件包安装完成之前所要运行的脚本;同--before-install--post-uninstall 软件包卸载完成之后所要运行的脚本;同--after-remove
--post-uninstall 软件包卸载完成之前索要运行的脚本;同--before-remove
四、fpm打包实战
1、由于编译nginx需要nginx用户,编译完成后要创建软连接,此步骤可通过脚本和fpm的--post-install 参数
[root@lnmp scripts]# cat nginx_rpm.sh #!/bin/sh useradd nginx -M -s /sbin/nologin ls /application/nginx-1.6.3/ /application/nginx
2、对编译好的nginx进行打包
fpm -s dir -t rpm -n nginx -v 1.6.2 -d 'pcre-devel,openssl-devel' --post-install \ /server/scripts/nginx_rpm.sh -f /application/nginx-1.6.2/
(最好全路径,并且不要使用软连接)
3、重新开一个机器,全新机器即可,作为客户端,执行rpm -e openssl-devel pcre-devel操作
yum -y localinstall nginx-1.6.2-1.x86_64.rpm
注:yum安装解决依赖问题
在使用yum安装软件A时,yum会在下载完A的rpm包后,对该apm包进行检查(rpm包中会给出安装rpm包所依赖的基础库和软件)。如果检查出A
的安装还要依赖B,那么此时yum就会自动下载并安装B,B安装完毕后,就会继续安装A,如果内网yum源的话,我们只需要把B放在内网yum源即可,如果检查出,A的安装不需要其他软件的支持,那么yum会自动安装A。 fpm -d 就是用来指定依赖关系的
附:yum一些常用命令