天天看點

linux系統使用fpm對kong進行快速打包部署

Linux目前安裝軟體的方式大緻有以下幾種:源碼安裝、yum安裝、deb安裝(基于Debian的系統使用deb格式的包如ubuntu)、Rpm安裝 (基于Red hat)。其中Rpm安裝相對來說是最友善快捷而且全自動的安裝方式。本文将介紹如果将我們編寫或者修改的源碼用rpm進行打包。首先要提到的是rpmbuild這個工具,這個工具我之前也提到過,可以生成rpm包,但是需要編寫spec檔案,上手麻煩。而本文提到的Fpm,是一種比較快速制作rpm包的工具,比起rpmbuild要友善很多。

Fpm支援的源類型包:

• dir: 将目錄打包成所需要的類型,可以用于源碼編譯安裝的軟體包

• rpm: 對rpm進行轉換

• gem: 對rubygem包進行轉換

• python: 将Python子產品打包成相應的類型

Fpm支援的目标類型包:

• rpm: 轉換為rpm包

• deb: 轉換為deb包

• solaris: 轉換為solaris包

• puppet: 轉換為puppet包

我們還是拿kong的源碼為例子,通過修改kong的源碼之後如果将源碼打成deb或者rpm包。

1、 第一步Linux下安裝fpm。

linux系統使用fpm對kong進行快速打包部署
linux系統使用fpm對kong進行快速打包部署

2、 使用壓縮工具解壓網上下載下傳的kong-1.2.1.el7.noarch.rpm(根據不同作業系統和kong的版本号下載下傳不同版本),會生成cpio檔案,再解壓生成kong-1.2.1-1.noarch目錄,将修改後的kong源碼覆寫到該目錄下的/usr/local/share/lua/5.1/kong下。

3、 執行指令fpm -s dir -t rpm -n kong -v 1.2.1 -d ‘gcc,gcc+’ -C …/kongfpm/ ,生成rpm檔案,這個時候經過修改Kong源碼的kong1.2.1版本的rpm安裝包就生成成功了,還可以通過-t 參數指定生成deb包。

fpm -s dir -t rpm -a all -n kong -v 1.2.1 -C …/kongfpm/ (生成noarch包)

linux系統使用fpm對kong進行快速打包部署

附錄RPM的常用參數如下:

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

繼續閱讀