RPM打包之路

360雲端計算發表於2020-06-05

女主宣言

今天小編為大家分享一篇RPM包打包的文章,文章從RPM概念說起,針對RPM包的打包,講述了市面上兩種主流的RPM包打包方式和一種自主研發的自動化打包工具,希望能對大家有所幫助。

PS:豐富的一線技術、多元化的表現形式,盡在“360雲端計算”,點關注哦!

RPM打包之路

1

什麼是RPM

 
RPM早期被稱為RedHat Package Manager,但由於目前RPM非常流行,且已經成為Linux工業標準。所以RPM現在又被稱為RPM is Package Manager。RPM管理支援事務機制,增強了程式安裝解除安裝的管理。RPM的功能:打包、安裝、查詢、升級、解除安裝、校驗、資料庫管理。YUM被稱為 Yellow dog Updater, Modified,是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。YUM客戶端基於RPM包進行管理,可以透過HTTP伺服器下載、FTP伺服器下載、本地軟體池的等方式獲得軟體包,可以從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係。

軟體包管理系統

RPM打包之路


2

運用rpmbuild生成RPM

 

安裝rpm-build軟體包:

yum install rpm-build -y


rpmbuild目錄:

當執行rpmbuild命令失敗之後,會在當前目錄下生成一個rpmbuild目錄,該目錄中包含下面的6個目錄。

BUILD:原始碼解壓以後放的位置,只需提供BUILD目錄,具體裡面放什麼,不用我們管,所以真正的製作車間是BUILD目錄。 

BUILDROOT:假根,使用install臨時安裝到這個目錄,把這個目錄當作根來用的,所以在這個目錄下的目錄檔案,才是真正的目錄檔案。當打包完成後,在清理階段,這個目錄將被刪除。 

RPMS:製作完成後的rpm包存放目錄,為特定平臺指定子目錄(i386,i686,ppc)。 

SOURCES:收集的原始檔,源材料,補丁檔案等存放位置。 

SPECS:存放spec檔案,作為製作rpm包的綱領檔案,檔案以.spec結尾。SRPMS:src格式的rpm包位置 ,既然是src格式的包,就沒有平臺的概念了。


常規操作:

1.下載原始碼tar包到SOURCE目錄。
2.編寫SPEC檔案。
3.使用rpmbuild生成RPM包。


3

運用fpm生成RPM

 
FPM的是由jordansissel基於ruby語言開發的一種方便打包的工具。簡單說就是將一種型別的包轉換成另一種型別的包。

安裝fpm軟體包:

#安裝ruby

          yum -y install ruby rubygems ruby-devel

# 新增淘寶Ruby倉庫

          gem sources -a

# 移除原生的Ruby倉庫

          gem sources --remove

# 安裝fpm

          gem install fpm


FPM目錄規劃如下圖:

RPM打包之路
常規操作:
1.將需要打包的目錄解壓到到usr/local目錄下 。
2.編寫軟體包安裝完成前所要執行的指令碼 、軟體包安裝完成之後所要執行的指令碼 、軟體包解除安裝完成之後所要執行的指令碼 、軟體包解除安裝完成之前所要執行的指令碼。
3.執行fpm命令,生成RPM包。

%Fpm –s <source type> -t <target type> [options]

4.測試RPM包。

4

運用自動化工具生成RPM

 

本工具是基於fpm開發的視覺化打包工具,分為wshell命令列上傳檔案工具和圖形化打包測試工具。

自動化工具流程架構圖:

RPM打包之路

常規操作:

1.按照規範構建檔案目錄,參考如下:

RPM打包之路

2.透過wshell上傳資料夾。

    1下載資料夾製作工具wshell。

yum install addops-auto-wshell(預設安裝到usr/local/bin目錄下)

    2、wshell製作壓縮包。

   wshell build name-version-iteration    例:wshell build pika30-3.0.2-1、wshell build safe-nginx-1.2.9-3

    3、wshell上傳壓縮包。

   wshell put name-version-iteration.tar.gz     例:wshell put pika30-3.0.2-1.tar.gz、wshell put safe-nginx-1.2.9-3.tar.gz

3.透過UI填寫資訊點選打包。
    下面是打包UI介面:
RPM打包之路

結語


rpm自動化工具在很大程度上改變了之前延續的打包方法,使得打包更小白化,每一位沒有接觸過打包的程式設計師都可以在很短的時間內實現rpm包的定製。目前該系統支援多個使用者的原始碼包備份、併發打包和進度查詢,但是原始碼包的製作還不是很友好,隨著使用者量的增大,未來將最佳化原始碼包的製作工具,提高打包效率。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69966971/viewspace-2696563/,如需轉載,請註明出處,否則將追究法律責任。