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
<code>[root@遊戲測試 ~]</code><code># rpm -qa | grep ruby</code>
<code>ruby-1.8.7.374-4.el6_6.x86_64</code>
<code>ruby-rdoc-1.8.7.374-4.el6_6.x86_64</code>
<code>ruby-devel-1.8.7.374-4.el6_6.x86_64</code>
<code>ruby-libs-1.8.7.374-4.el6_6.x86_64</code>
<code>ruby-irb-1.8.7.374-4.el6_6.x86_64</code>
<code>rubygems-1.3.7-5.el6.noarch</code>
3.檢視目前ruby源:
<code>[root@遊戲測試 ~]</code><code>#</code>
<code>*** CURRENT SOURCES ***</code>
<code>http:</code><code>//rubygems</code><code>.org/</code>
添加國内源:
<code>[root@遊戲測試 ~]</code><code># gem sources -a http://mirrors.aliyun.com/rubygems/</code>
移除國外源:
<code>[root@遊戲測試 ~]</code><code>#gem sources --remove http://rubygems.org/</code>
4.安裝FPM工具:
<code>[root@遊戲測試 ~]</code><code>#gem install fpm</code>
遇到的錯誤
<code>Building native extensions. This could take a </code><code>while</code><code>...</code>
<code>ERROR: Error installing fpm:</code>
<code>ruby-xz requires Ruby version >= 1.9.3.</code>
解決方法
<code>1.更新ruby</code>
<code>這個方法我試過了。因為更新ruby的坑比較大。是以不建議用這個方法</code>
<code>2.安裝舊版本的fpm</code>
<code>[root@遊戲測試 ~]</code><code># gem install fpm -v 1.4.0</code>
<code>Successfully installed clamp-0.6.5</code>
<code>Successfully installed fpm-1.4.0</code>
<code>2 gems installed</code>
<code>Installing ri documentation </code><code>for</code> <code>clamp-0.6.5...</code>
<code>Installing ri documentation </code><code>for</code> <code>fpm-1.4.0...</code>
<code>Installing RDoc documentation </code><code>for</code> <code>clamp-0.6.5...</code>
<code>Installing RDoc documentation </code><code>for</code> <code>fpm-1.4.0...</code>
<code>[root@遊戲測試 ~]</code><code># gem -v</code>
<code>1.3.7</code>
5.FPM常用參數:
<code>-s:指定源類型</code>
<code>-t:指定目标類型,即想要制作為什麼包</code>
<code>-n:指定包的名字</code>
<code>-</code><code>v</code><code>:指定包的版本号</code>
<code>-C:指定打包的相對路徑</code>
<code>-d:指定依賴于哪些包</code>
<code>-f:第二次包時目錄下如果有同名安裝包存在,則覆寫它</code>
<code>-p:輸出的安裝包的目錄,不想放在目前目錄下就需要指定</code>
<code>--post-</code><code>install</code><code>:軟體包安裝完成之後所要運作的腳本;同--offer-</code><code>install</code>
<code>--pre-</code><code>install</code><code>:軟體包安裝完成之前所要運作的腳本;同--before-</code><code>install</code>
<code>--post-uninstall:軟體包解除安裝完成之後所要運作的腳本;同--offer-remove</code>
<code>--pre-uninstall:軟體包解除安裝完成之前所要運作的腳本;同—before-remove</code>
本文轉自 shouhou2581314 51CTO部落格,原文連結:http://blog.51cto.com/thedream/1834192,如需轉載請自行聯系原作者