FPM的github:https://github.com/jordansiss...html
1.支持的源類型包:python
dir: 將目錄打包成所須要的類型,能夠用於源碼編譯安裝的軟件包
rpm: 對rpm進行轉換
gem: 對rubygem包進行轉換
python: 將Python模塊打包成相應的類型ios
yum install -y gcc yum -y install ruby rubygems ruby-devel rpm-build gem sources -a http://mirrors.aliyun.com/rubygems/ gem sources --remove http://mirrors.aliyun.com/rubygems/ gem sources --remove https://rubygems.org/ #fpm 是 ruby寫的,所以系統環境須要ruby,且版本必須大於1.8.5
2.查看當前ruby源:nginx
root># gem sources -l *** CURRENT SOURCES *** http://mirrors.aliyun.com/rubygems/
3.安裝FPM工具:git
# 安裝fpm,gem從rubygem倉庫安裝軟件相似yum從yum倉庫安裝軟件。首先安裝低版本的json,高版本的json須要ruby2.0以上,而後安裝低版本的fpm,夠用。 gem install json -v 1.8.3 gem install fpm -v 1.3.3 gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 curl -L get.rvm.io | bash -s stable source /etc/profile.d/rvm.sh rvm install 1.9.3 https://www.cnblogs.com/iosdev/p/3320671.html # 上面的2步安裝僅適合CentOS6系統,CentOS7系統直接使用gem install fpm一步搞定。
4.FPM經常使用參數:github
-s:指定源類型 -t:指定目標類型,即想要製做爲何包 -n:指定包的名字 -v:指定包的版本號 -C:指定打包的相對路徑 -d:指定依賴於哪些包 -f:第二次包時目錄下若是有同名安裝包存在,則覆蓋它 -p:輸出的安裝包的目錄,不想放在當前目錄下就須要指定 --post-install:軟件包安裝完成以後所要運行的腳本;同--offer-install --pre-install:軟件包安裝完成以前所要運行的腳本;同--before-install --post-uninstall:軟件包卸載完成以後所要運行的腳本;同--offer-remove --pre-uninstall:軟件包卸載完成以前所要運行的腳本;同—before-remove
5.定製nginx的RPM包實例json
一、在打包機器上先安裝一次nginxvim
yum -y install pcre-developenssl-devel useradd nginx -M -s /sbin/nologin tar xf nginx-1.8.0.tar.gz cd nginx-1.8.0 ./configure --user=nginx --group=nginx --prefix=/application/nginx-1.8.0 --with-http_ssl_module--with-http_stub_status_module make && make install ln -s /application/nginx-1.8.0/application/nginx
二、編寫腳本ruby
mkdir /server/scripts/ -p cd /server/scripts/
軟件包卸載前、卸載後的腳本,能夠根據狀況是否編寫,不編寫問題也不大。可是rpm安裝後的腳本是必須的。bash
vim nginx_post_install.sh #編寫一個rpm安裝後須要執行的腳本