Centos6 使用fpm構建rpm包

FPM功能簡單說就是將一種類型的包轉換成另外一種類型。

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安裝後須要執行的腳本

參考文檔
http://blog.51cto.com/lee90/1...

相關文章
相關標籤/搜索