FPM制作RPM包

部署软件的三种方式

1、编译安装软件,优点是可以定制化安装目录、按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长。

2、yum安装软件,优点是全自动化安装,不需要为依赖问题发愁了,缺点是自主性太差,软件的功能、存放位置都已经固定好了,不易变更。

3、编译源码,根据自己的需求做成定制RPM包–>搭建内网yum仓库–yum安装。结合前两者的优点,暂未发现什么缺点。可能的缺点就是RPM包的通用性差,只能适用于本公司的环境。另外一般人不会定制RPM包。这是中大型互联网企业运维自动化的必要技能。

安装FPM打包工具

  1、安装依赖包
    yum -y groupinstall "Development Tools"
    yum -y install ruby ruby-devel rubygems gcc openssl-devel
    rpm -qa ruby rubygems ruby-devel

  2、安装FPM
    gem sources -a https://ruby.taobao.org/   添加淘宝的Ruby仓库
    gem sources --remove https://rubygems.org/ 移除原生的Ruby仓库
    gem install  fpm                    安装fpm

FPM工具常用参数

参数

参数说明

-s

指定源类型

-t

指定目标类型,即想要制作为什么包

-n

指定包的名字

-v

指定包的版本号

-C

指定打包的相对路径 

-d

指定依赖于哪些包

-f

第二次打包时目录下如果有同名安装包存在,则覆盖它

-p

输出的安装包的目录,不想放在当前目录下就需要指定

--post-install 

软件包安装完成之后所要运行的脚本;同--after-install

--pre-install  

软件包安装完成之前所要运行的脚本;同--before-install

--post-uninstall

软件包卸载完成之后所要运行的脚本;同--after-remove

--pre-uninstall

软件包卸载完成之前所要运行的脚本;同--before-remove

案例:制作nginx的RPM包

yum install -y pcre-devel openssl-devel
mkdir -p /server/tools
cd /server/tools
wget -q http://nginx.org/download/nginx-1.10.2.tar.gz
ls -l nginx-1.10.2.tar.gz
useradd www -s /sbin/nologin -M
tar xf nginx-1.10.2.tar.gz
cd nginx-1.10.2
./configure  --user=www --group=www --prefix=/application/nginx-1.10.2 --with-http_stub_status_module  --with-http_ssl_module
make
make install
ln -s /application/nginx-1.10.2 /application/nginx
安装nginx
[root@test ~]# cd /server/scripts/
[root@test scripts]# vim nginx_install_devel.sh
#!/bin/bash
useradd -M -s /sbin/nologin www -u 666
ln -sf /application/nginx-1.10.2   /application/nginx
ln -s /application/nginx/sbin/* /usr/local/sbin/
编写脚本(for --post-install)
//注意:在进行打包的时候要先停止nginx

[root@test ~]#  fpm -s dir -t rpm -n nginx -v 1.10.2 \
-d 'pcre-devel,openssl-devel' \
--post-install /server/scripts/nginx_install_devel.sh \
-f /application/nginx-1.10.2/ 
打包-制作rpm包
//推荐使用yum 安装
//这个命令会自动先安装rpm包的依赖,然后再安装rpm包。

yum -y localinstall  nginx-1.10.2-1.x86_64.rpm

猜你喜欢

转载自www.cnblogs.com/sellsa/p/9084613.html