实验环境介绍:
[[email protected] ~]# uname -r
2.6.32-573.el6.x86_64
[[email protected] ~]# cat /etc/redhat-release
CentOS release 6.7 (Final)
打包之前需要在测试机上先安装 nginx 服务
安装过程如下
[[email protected] ~]# useradd -s /sbin/nologin/ -M nginx
[[email protected] ~]# yum -y install pcre-devel openssl-devel
[[email protected] ~]# tar zxf nginx-1.6.2.tar.gz
[[email protected] ~]# cd nginx-1.6.2
[[email protected] ~]# ./configure \
--user=nginx \
--group=nginx \
--prefix=/application/nginx-1.6.2 \
--with-http_stub_status_module \
--with-http_ssl_module
[[email protected] nginx-1.6.2]# make && make install
[[email protected] nginx-1.6.2]# ln -s /application/nginx-1.6.2/ /application/nginx
fpm 制作开始
通过 yum 安装依赖包
[[email protected] ~]# yum -y install ruby rubygems ruby-devel
更换 yum 源
[[email protected] ~]# gem sources -a http://mirrors.aliyun.com/rubygems/
[[email protected] ~]# gem sources --remove http://rubygems.org/
[[email protected] ~]# gem sources --list
[[email protected] ~]# gem install fpm -v 1.3.3
-v 指定要安装的 fpm 版本,也可以不指定。直接执行 gem install fpm
写一个脚本,只需要写入添加的 nginx 用户和创建软连接的命令即可
[[email protected] ~]# vim nginx_fpm.sh
#!/bin/bash
useradd -s /sbin/nologin/ -M nginx
ln -s /application/nginx-1.6.2/ /application/nginx
执行打包命令
[[email protected] ~]# fpm -s dir -t rpm -n nginx -v 1.6.2 -d ‘pcre-devel,openssl-devel‘ --post-install /root/nginx_fpm.sh -f /application/nginx-1.6.2/
-s:指定源类型
-t:执行目标类型
-n:执行包的名字
-v:指定包的版本号
-d:指定依赖于哪些包
--post-install:软件安装完要运行的脚本
-f:第二次包时目录下如果有同名安装包存在,则覆盖它
在一台新机器上测试一下刚才的 rpm 包
使用 yum -y localinstall 命令可以自行解决安装问题
[[email protected] ~]# yum -y localinstall nginx-1.6.2-1.x86_64.rpm
启动 nginx 服务成功
[[email protected] ~]# /application/nginx/sbin/nginx
[[email protected] ~]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1842 root 6u IPv4 14884 0t0 TCP *:http (LISTEN)
nginx 1843 nginx 6u IPv4 14884 0t0 TCP *:http (LISTEN)