一. FPM简介
FPM的作者是Jordansissel
FPM的GITHUB:https://github.com/jordansissel/fpm
官网:http://fpm.readthedocs.io/en/latest/
FPM功能简单的说就是将一种类型的包转换成另外一种类型
2. 支持的源类型包
dir | 将目录打包成所需要的类型,可以用于源码编译安装的软件包 |
rpm | 对rpm进行转换 |
gem | 对rubygem包进行转换 |
python | 将python模块打包成相应的类型 |
3.支持的目标类型包
rpm | 转换为rpm包 |
deb | 转换为deb包 |
solaris | 转换为solaris包 |
puppet | 转换为solaris包 |
二. 安装
1 yum install centos-release-scl-rh 2 yum -y install ruby rubygems ruby-devel 3 gem sources -a http://mirrors.aliyun.com/rubygems/ 4 gem sources --remove http://rubygems.org/ 5 gem install fpm
三. RPM参数
详细使用:fpm --help
常见参数
-s | 指定源类型 |
-t | 指定目标类型,即想要制作什么包 |
-n | 指定包名字 |
-V | 指定包版本号 |
-C | 指定打包的相对路径 |
-d | 指定以来与那些包 |
-f | 第二次打包时目录下如果有同名安装包存在则覆盖 |
-p | 输出的安装包的目录,不想放在当前下就需要指定 |
--post-install | 软件包安装完成之后要运行的脚本 |
--pre-install | 软件包安装完成之前所要运行的脚本 |
--post-uninstall | 软件包卸载完成之后所要运行的脚本 |
--pre-uninstall | 软件包卸载完成之前所要运行的脚本 |
四. 实验
1.1 编译安装nginx
#开启yum缓存 sed -i 's/keepcache=0/keepcache=1/g' /etc/yum.conf #检查本地缓存rpm包 有则删除 find /var/cache/yum/ -name "*rpm" #安装依赖工具 yum -y install pcre-devel openssl-devel #打包依赖工具 find /var/cache/yum/ -name "*rpm" | xargs cp -t /tmp/ #安装nginx useradd nginx -M -s /sbin/nologin mkdir /application/tools -p wget http://nginx.org/download/nginx-1.15.2.tar.gz tar xf nginx-1.15.2.tar.gz cd nginx-1.15.2/ ./configure --prefix=/application/nginx-1.6.3 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module make && maek install
1.2打包nginx
#编写脚本 [root@OS-A1 application]# cat /server/scripts/nginx_rpm.sh #!/bin/bash useradd nginx -M -s /sbin/nologin ln -s /application/nginx-1.6.3/ /application/nginx #打包 fpm -s dir -t rpm -n nginx -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.6.3/
五. 安装rpm包
#yum安装 从网络安装依赖 yum localinstall nginx-1.0-1.x86_64.rpm #rpm安装可能报错依赖关系需要手动安装依赖 rpm -ivh nginx-1.0-1.x86_64.rpm