Centos6 使用fpm構建rpm包

2021-09-13 16:02:22 字數 1865 閱讀 8737

fpm的github:

1.支援的源型別包:

dir: 將目錄打包成所需要的型別,可以用於原始碼編譯安裝的軟體包

rpm: 對rpm進行轉換

gem: 對rubygem包進行轉換

python: 將python模組打包成相應的型別

yum install -y gcc

yum -y install ruby rubygems ruby-devel rpm-build

gem sources -a

gem sources --remove

gem sources --remove

#fpm 是 ruby寫的,因此系統環境需要ruby,且版本必須大於1.8.5

2.檢視當前ruby源:

root># gem sources -l

*** current sources ***

3.安裝fpm工具:

# 安裝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: --recv-keys d39dc0e3

curl -l get.rvm.io | bash -s stable

source /etc/profile.d/rvm.sh

rvm install 1.9.3

# 上面的2步安裝僅適合centos6系統,centos7系統直接使用gem install fpm一步搞定。

4.fpm常用引數:

-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包例項

1、在打包機器上先安裝一次nginx

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

make && make install

2、編寫指令碼

mkdir /server/scripts/ -p

cd /server/scripts/

軟體包解除安裝前、解除安裝後的指令碼,可以根據情況是否編寫,不編寫問題也不大。但是rpm安裝後的指令碼是必須的。

vim nginx_post_install.sh #編寫乙個rpm安裝後需要執行的指令碼

參考文件

centos 6推薦使用epel源

centos 6推薦使用epel源 憂零的部落格 51cto技術部落格 centos 6推薦使用epel源 2011 10 26 18 36 56 標籤 yum centos 6 在dell r410上面裝的是centos6,64的作業系統,用的163的源,我一直都是用163的源,比較快。但是我發現...

centos 6推薦使用epel源

在dell r410上面裝的是centos6,64的作業系統,用的163的源,我一直都是用163的源,比較快。但是我發現這個源裡面,根本沒有 libmcrypt libmcrypt devel這二個包,裝php擴充套件mcrypt時,又要用到這二個包,所以我手動裝了libmcrypt包,但是給我的感...

CentOS 6啟動流程

載入bios的硬體資訊,獲取第乙個啟動裝置 讀取第乙個啟動裝置mbr的引導引導程式 grub 的啟動資訊 載入核心作業系統的核心資訊,核心開始解壓縮,並嘗試驅動所有的硬體裝置 核心執行init程式,並獲取預設的執行資訊 init程式執行 etc rc.d rc.sysinit檔案,重新掛載根檔案系統...