fpm使用打包工具

  

支持的源類型包
  dir 將目錄打包成所需要的類型。可以用于源碼編譯安裝后的軟件包
  rpm 對rpm進行轉換
  gen 對rubygem包進行轉換
  python 將python模塊打包成相應的類型
支持的目標類型包
  rpm 轉換成rpm包
  deb 轉換成deb包
  solaris 轉換成solaris包
  puppet 轉換成puppet包
?
FPM安裝過程
?
安裝ruby支持模塊
  yum install ruby rubygems ruby-devel -y
添加阿里云的rubygems倉庫,國外的源比較慢
  gem sources -a
移除源生的ruby倉庫
  gem sources –remove
安裝fpm
  gem install fpm -v 1.4.0
?
錯誤:
ERROR:??Error installing fpm:
? ?? ???json?requires Ruby version >= 1.9.3.
?
類似這種錯誤,很多網友推薦升級ruby,我也嘗試過,表示坑很多,并不推薦
實際上并不是fpm或者ruby的問題,而是因為系統內json默認版本過高,導致ruby 1.8.7無法支持,需要降低json版本
  gem install json -v 1.8.3
安裝完json后再安裝fpm即可
另外,centos7.x中默認ruby版本就高,沒有此問題
?
fpm命令
?
常用參數:
  -s 指定source類型,如dir
  -t 制定目標類型,如rpm
  -n 指定包名字
  -v 指定包的版本號
  -C 指定打包的相對路徑
  -d 指定依賴于哪些包
  -f 第二次打包時目錄下如果有同名包,覆蓋
  -p 輸出安裝包的目錄,不指定則為當前目錄
  –post-install 軟件包安裝完成之后所要執行的腳本 同::–after-install
  –pre-install 軟件包安裝完成之前縮要執行的腳本 同: –before-install
  –post-uninstall 軟件包卸載完成之后所要執行的腳本 同::–after-remove
  –pre-uninstall 軟件包卸載完成之前縮要執行的腳本 同: –before-remove
fpm命令其實是對rpmbuild命令進行封裝,其實低層還是rpmbuild命令,因此系統必須要有rpmbuild命令。
如果fpm命令無法運行,可以檢查rpm-build是否安裝 yum install rpm-build -y
?
打包命令示例:
  fpm?-s?dir?-t?rpm?-n?nginx?-v?1.6.3?-d?'pcre-devel,openssl-devel'?--post-install?/home/root/scripts/nginx.sh?/usr/local/nginx-1.6.3/    /usr/local/nginx-1.6.3/?為nginx的安裝目錄    /home/root/scripts/nginx.sh?為nginx安裝后要執行的腳本,如創建用戶、創建軟鏈接
?
注意事項:
  1.打包路徑,推薦使用絕對路徑
  2.推薦打包實際路徑,打包軟鏈接時后面一定要有 / ,不加 / 指的是軟鏈接文件,加 / 指目錄
?
?

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享