本文共 1919 字,大约阅读时间需要 6 分钟。
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
1 2 3 4 5 6 7 | [root@游戏测试 ~] # rpm -qa | grep ruby 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源:
1 2 3 | [root@游戏测试 ~] # *** CURRENT SOURCES *** http: //rubygems .org/ |
添加国内源:
1 | [root@游戏测试 ~] # gem sources -a http://mirrors.aliyun.com/rubygems/ |
移除国外源:
1 | [root@游戏测试 ~] #gem sources --remove http://rubygems.org/ |
4.安装FPM工具:
1 | [root@游戏测试 ~] #gem install fpm |
遇到的错误
1 2 3 4 5 | [root@游戏测试 ~] #gem install fpm Building native extensions. This could take a while ... Building native extensions. This could take a while ... ERROR: Error installing fpm: ruby-xz requires Ruby version >= 1.9.3. |
解决方法
1 2 3 4 5 6 7 8 9 10 11 | 1.更新ruby 这个方法我试过了。因为更新ruby的坑比较大。所以不建议用这个方法 2.安装旧版本的fpm [root@游戏测试 ~] # gem install fpm -v 1.4.0 Successfully installed clamp-0.6.5 Successfully installed fpm-1.4.0 2 gems installed Installing ri documentation for clamp-0.6.5... Installing ri documentation for fpm-1.4.0... Installing RDoc documentation for clamp-0.6.5... Installing RDoc documentation for fpm-1.4.0... |
1 2 | [root@游戏测试 ~] # gem -v 1.3.7 |
5.FPM常用参数:
1 2 3 4 5 6 7 8 9 10 11 12 | -s:指定源类型 -t:指定目标类型,即想要制作为什么包 -n:指定包的名字 - v :指定包的版本号 -C:指定打包的相对路径 -d:指定依赖于哪些包 -f:第二次包时目录下如果有同名安装包存在,则覆盖它 -p:输出的安装包的目录,不想放在当前目录下就需要指定 --post- install :软件包安装完成之后所要运行的脚本;同--offer- install --pre- install :软件包安装完成之前所要运行的脚本;同--before- install --post-uninstall:软件包卸载完成之后所要运行的脚本;同--offer-remove --pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove |
本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1834192,如需转载请自行联系原作者