天天看點

centos 6.5下安裝fpm打包工具

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 &gt;= 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,如需轉載請自行聯系原作者