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,如需转载请自行联系原作者