FPM打包工具

一. 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 

作者:闫世成

出处:http://cnblogs.com/yanshicheng

联系:yans121@sina.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题或建议,请多多赐教,非常感谢。
原文地址:https://www.cnblogs.com/yanshicheng/p/9382120.html