女主宣言前端
今天小編爲你們分享一篇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目錄規劃以下圖:
%Fpm –s <source type> -t <target type> [options]
4.測試RPM包。4
運用自動化工具生成RPM
本工具是基於fpm開發的可視化打包工具,分爲wshell命令行上傳文件工具和圖形化打包測試工具。
自動化工具流程架構圖:
常規操做:
按照規範構建文件目錄,參考以下:
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填寫信息點擊打包。結語
rpm自動化工具在很大程度上改變了以前延續的打包方法,使得打包更小白化,每一位沒有接觸過打包的程序員均可以在很短的時間內實現rpm包的定製。目前該系統支持多個用戶的源碼包備份、併發打包和進度查詢,可是源碼包的製做還不是很友好,隨着用戶量的增大,將來將優化源碼包的製做工具,提升打包效率。