一:安裝ruby環境和gem指令: fpm 是 ruby寫的,是以系統環境需要ruby且版本必須大于1.8.5
# yum -y install ruby rubygems ruby-devel
檢視目前ruby源
# gem source -l
添加國内源
# gem sources -a http://mirrors.aliyun.com/rubygems/
删除國外源
# gem sources --remove --remove http://rubygems.org/
安裝fpm 可能要失敗
# gem install fpm
我這裡解決方法安裝舊版本的fpm
# gem install fpm -v 1.4.0
# gem -v
二:打包 以git-2.9.4.tar.gz打包為例子:
第1步:将git編譯安裝到:/tmp/installdir/Data/apps/git下
# tar xf git-2.9.4.tar.gz # cd git-2.9.4
# make prefix=/tmp/installdir/Data/apps/git all
# make prefix=/tmp/installdir/Data/apps/git install
/tmp/installdir/為fpm打包時指定的相對路徑,rpm安裝時會自動去掉這個目錄,git會直接安裝到生産環境的/Data/apps/git下,是以要保障這個/tmp/installdir 目錄的純淨。
第2步:建立rpm安裝後需要執行腳本 在/tmp/installtarget/install_after.sh #rpm安裝後執行腳本
#!/bin/bash
/bin/cp -a /usr/bin/git /usr/bin/git.1.7.1 2> /dev/null
/bin/rm -f /usr/bin/git
/bin/ln -s /Data/apps/git/bin/git /usr/bin/git
exit 0
第3步:建立rpm解除安裝後需要的執行的腳本 在/tmp/installtarget/remove_after.sh
#!/bin/bash
unlink /usr/bin/git
/bin/mv /usr/bin/git.1.7.1 /usr/bin/git 2> /dev/null
/bin/rm -rf /Data/apps/git
exit 0
第4步打包
fpm -s dir -t rpm -n hdf-git-client -v 2.9.4 -C /tmp/installdir/ --description 'git for haodf.com' --post-install /tmp/installtarget/install_after.sh --post-uninstall /tmp/installtarget/remove_after.sh -p /root/
FPM:常用參數說明
-s:指定源類型:
dir: 将目錄打包成所需要的類型,可以用于源碼編譯安裝的軟體包
rpm: 對rpm進行轉換
gem: 對rubygem包進行轉換
python: 将Python子產品打包成相應的類型
-t:指定目标類型,即想要制作為什麼包
-n:指定包的名字 -v:指定包的版本号
-C:指定打包的相對路徑
-d:指定依賴于哪些包,格式為-d 'name'
-f:第二次包時目錄下如果有同名安裝包存在,則覆寫它
-p:輸出的安裝包的目錄,不想放在目前目錄下就需要指定
--post-install:軟體包安裝完成之後所要運作的腳本;同--offer-install
--pre-install:軟體包安裝完成之前所要運作的腳本; 同--before-install
--post-uninstall:軟體包解除安裝完成之後所要運作的腳本;同--offer-remove
--pre-uninstall:軟體包解除安裝完成之前所要運作的腳本; 同—before-remove