FPM功能简单说就是将一种类型的包转换成另一种类型。
FPM的github:https://github.com/jordansissel/fpm
1.支持的源类型包:
dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包
rpm: 对rpm进行转换
gem: 对rubygem包进行转换
python: 将Python模块打包成相应的类型
2.安装ruby环境和gem命令: 这里我会提前把开发包装好
fpm 是 ruby写的,因此系统环境需要ruby,且版本必须大于1.8.5
yum -y install ruby rubygems ruby-devel
[root@游戏测试~]#rpm-qa|grepruby ruby-1.8.7.374-4.el6_6.x86_64 ruby-rdoc-1.8.7.374-4.el6_6.x86_64 ruby-devel-1.8.7.374-4.el6_6.x86_64 ruby-libs-1.8.7.374-4.el6_6.x86_64 ruby-irb-1.8.7.374-4.el6_6.x86_64 rubygems-1.3.7-5.el6.noarch
3.查看当前ruby源:
[root@游戏测试~]# ***CURRENTSOURCES*** http://rubygems.org/
添加国内源:
[root@游戏测试~]#gemsources-ahttp://mirrors.aliyun.com/rubygems/
移除国外源:
[root@游戏测试~]#gemsources--removehttp://rubygems.org/
4.安装FPM工具:
[root@游戏测试~]#geminstallfpm
遇到的错误
[root@游戏测试~]#geminstallfpm Buildingnativeextensions.Thiscouldtakeawhile... Buildingnativeextensions.Thiscouldtakeawhile... ERROR:Errorinstallingfpm: ruby-xzrequiresRubyversion>=1.9.3.
1.更新ruby 这个方法我试过了。因为更新ruby的坑比较大。所以不建议用这个方法 2.安装旧版本的fpm [root@游戏测试~]#geminstallfpm-v1.4.0 Successfullyinstalledclamp-0.6.5 Successfullyinstalledfpm-1.4.0 2gemsinstalled Installingridocumentationforclamp-0.6.5... Installingridocumentationforfpm-1.4.0... InstallingRDocdocumentationforclamp-0.6.5... InstallingRDocdocumentationforfpm-1.4.0...
[root@游戏测试~]#gem-v 1.3.7
5.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