RPM打包之路

 蕭明旭 360雲計算

女主宣言前端

今天小編爲你們分享一篇RPM包打包的文章,文章從RPM概念提及,針對RPM包的打包,講述了市面上兩種主流的RPM包打包方式和一種自主研發的自動化打包工具,但願能對你們有所幫助。nginx

PS:豐富的一線技術、多元化的表現形式,盡在「360雲計算」,點關注哦!程序員

圖片

1shell

什麼是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包而且安裝,能夠自動處理依賴性關係。

軟件包管理系統ruby

圖片


2服務器

運用rpmbuild生成RPM架構

 

安裝rpm-build軟件包:併發

yum install rpm-build -yapp


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 http://ruby.taobao.org/

# 移除原生的Ruby倉庫

          gem sources --remove http://rubygems.org/

# 安裝fpm

          gem install fpm


FPM目錄規劃以下圖:


image.png

常規操做:1.將須要打包的目錄解壓到到usr/local目錄下 。2.編寫軟件包安裝完成前所要運行的腳本 、軟件包安裝完成以後所要運行的腳本 、軟件包卸載完成以後所要運行的腳本 、軟件包卸載完成以前所要運行的腳本。3.執行fpm命令,生成RPM包。

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

4.測試RPM包。

4

運用自動化工具生成RPM

 

本工具是基於fpm開發的可視化打包工具,分爲wshell命令行上傳文件工具和圖形化打包測試工具。

自動化工具流程架構圖:

image.png


常規操做:

  1. 按照規範構建文件目錄,參考以下:

image.png

2.經過wshell上傳文件夾。

    1下載文件夾製做工具wshell。

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

     二、 wshell製做壓縮包。

   wshell build name-version-iteration    例:wshell build pika30-3.0.2-一、wshell build safe-nginx-1.2.9-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界面:
image.png

結語


rpm自動化工具在很大程度上改變了以前延續的打包方法,使得打包更小白化,每一位沒有接觸過打包的程序員均可以在很短的時間內實現rpm包的定製。目前該系統支持多個用戶的源碼包備份、併發打包和進度查詢,可是源碼包的製做還不是很友好,隨着用戶量的增大,將來將優化源碼包的製做工具,提升打包效率。

相關文章
相關標籤/搜索