使用FPM打包工具打rpm包

一:安裝ruby環境和gem命令: fpm 是 ruby寫的,所以系統環境須要ruby且版本必須大於1.8.5python

  # yum -y install ruby rubygems ruby-develgit

查看當前ruby源  ruby

  # gem source -l  bash

添加國內源app

  # gem sources -a http://mirrors.aliyun.com/rubygems/ide

刪除國外源post

  # gem sources --remove --remove http://rubygems.org/spa

安裝fpm 可能要失敗orm

  # gem install fpmip

我這裏解決方法安裝舊版本的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

相關文章
相關標籤/搜索