FPM制做RPM包

部署软件的三种方式

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

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

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

安装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工具经常使用参数

参数bash

参数说明app

-s运维

指定源类型ide

-t工具

指定目标类型,即想要制做为何包post

-nui

指定包的名字

-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
相关文章
相关标签/搜索