1、安装
首次安装
yum -y install ruby rubygems ruby-devel
添加淘宝sources
gem sources -a https://ruby.taobao.org/
移除国外sources
gem sources--remove http://rubygems.org/
安装fpm
gem install fpm -v 1.4.0
2、FPM常用参数:
-s:指定源类型
-t:指定目标类型,即想要制作为什么包
-n:指定包的名字
-v:指定包的版本号
-C:指定打包的相对路径
-d:指定依赖于哪些包
-f:第二次包时目录下如果有同名安装包存在,则覆盖它
-p:输出的安装包的目录,不想放在当前目录下就需要指定
–post-install:软件包安装完成之后所要运行的脚本;同–offer-install
–pre-install:软件包安装完成之前所要运行的脚本;同–before-install
–post-uninstall:软件包卸载完成之后所要运行的脚本;同–offer-remove
–pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove
支持的源类型包:
dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包
rpm: 对rpm进行转换
gem: 对rubygem包进行转换
Python: 将python模块打包成相应的类型
支持的目标类型包:
rpm: 转换为rpm包
deb: 转换为deb包
solaris: 转换为solaris包
puppet: 转换为puppet包
3、实战
- $ fpm -s dir -t rpm -n tcpcopy -v 0.8.0 /tmp/tcpcopy
- $ Created rpm {:path=>"tcpcopy-0.8.0-1.x86_64.rpm"}
- $ rpm -qpl tcpcopy-0.8.0-1.x86_64.rpm
- $ /tmp/tcpcopy/bin/intercept
- $ /tmp/tcpcopy/tmp/tcpcopy/bin/tcpcopy
- $ fpm -s dir -t rpm -n tcpcopy -v 0.8.0 -C /tmp/tcpcopy bin # -C表示在打包前转到/tmp/tcpcopy
- $ /bin/intercept
- $ /bin/tcpcopy
- $ fpm -s dir -t rpm -n tcpcopy -v 0.8.0 -C /tmp/tcpcopy bin /usr/lib64/libsoftokn3.so
- $ /bin/intercept
- $ /bin/tcpcopy
- $ /usr/lib64/libsoftokn3.so
4、问题