FPM制作RPM包
部署软件的三种方式
1、编译安装软件,优点是可以定制化安装目录、按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长。
2、yum安装软件,优点是全自动化安装,不需要为依赖问题发愁了,缺点是自主性太差,软件的功能、存放位置都已经固定好了,不易变更。
3、编译源码,根据自己的需求做成定制RPM包–>搭建内网yum仓库–yum安装。结合前两者的优点,暂未发现什么缺点。可能的缺点就是RPM包的通用性差,只能适用于本公司的环境。另外一般人不会定制RPM包。这是中大型互联网企业运维自动化的必要技能。
安装FPM打包工具
yum -y install ruby ruby-devel rubygems gcc openssl-devel rpm-build gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ gem install 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
[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/
//注意:在进行打包的时候要先停止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/
//推荐使用yum 安装 //这个命令会自动先安装rpm包的依赖,然后再安装rpm包。 yum -y localinstall nginx-1.10.2-1.x86_64.rpm
每天进步一点,加油!