solaris 轉換成solaris套件
##upp 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:
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.建議打包實際路徑,打包軟連結時後面一定要有/ ,不加/ 指的是軟連結文件,加上/ 指目錄
#