Linux rpm安裝源代碼打包
Linux rpm更新了很多版本更新,我本人認為Linux rpm很好使的文件系統,在此向大家推薦。如今技術不斷更新,各種使用文件都已經淘汰。我認為還是有很不錯的如Linux rpm值得大家來運用。
一、安裝Linux rpmbuild
// for fedora linux yum install Linux rpmbuild -y
// for ubuntu apt-get install Linux rpmbuild
二、Linux rpm specification file
spec文件規范能熟練掌握以上命令以及部分參數含義,管理日常的Linux rpm軟件包就不成問題了。然而隨著Linux風靡全球,越來越多的開發者喜歡采用Linux rpm格式來發布自己的軟件包。那么Linux rpm軟件包是怎樣制作的呢?對大多數Linux開發工程師來說是比較陌生的。
其實,制作Linux rpm軟件包并不是一件復雜的工作,其中的關鍵在于編寫SPEC軟件包描述文件。要想制作一個Linux rpm軟件包就必須寫一個軟件包描述文件 (SPEC)。這個文件中包含了軟件包的諸多信息,如軟件包的名字、版本、類別、說明摘要、創建時要執行什么指令、安裝時要執行什么操作、以及軟件包所要 包含的文件列表等等。描述文件說明如下:
(1) 文件頭
一般的spec文件頭包含以下幾個域:Summary:用一句話概括該軟件包盡量多的信息。Name:軟件包的名字,最終Linux rpm軟件包是用該名字與版本號,釋出號及體系號來命名軟件包的。Version:軟件版本號。僅當軟件包比以前有較大改變時才增加版本號。
Release:軟件包釋出號。一般我們對該軟件包做了一些小的補丁的時候就應該把釋出號加1。Vendor:軟件開發者的名字。Copyright:軟件包所采用的版權規則。具體有:GPL(自由軟件),BSD,MIT,Public Domain(公共域),Distributable(貢獻),commercial(商業),Share(共享)等,一般的開發都寫GPL。
- Group: 軟件包所屬類別,具體類別有:
- Amusements/Games (娛樂/游戲)
- Amusements/Graphics(娛樂/圖形)
- Applications/Archiving (應用/文檔)
- Applications/Communications(應用/通訊)
- Applications/Databases (應用/數據庫)
- Applications/Editors (應用/編輯器)
- Applications/Emulators (應用/仿真器)
- Applications/Engineering (應用/工程)
- Applications/File (應用/文件)
- Applications/Internet (應用/因特網)
- Applications/Multimedia(應用/多媒體)
- Applications/Productivity (應用/產品)
- Applications/Publishing(應用/印刷)
- Applications/System(應用/系統)
- Applications/Text (應用/文本)
- Development/Debuggers (開發/調試器)
- Development/Languages (開發/語言)
- Development/Libraries (開發/函數庫)
- Development/System (開發/系統)
- Development/Tools (開發/工具)
- Documentation (文檔)
- System Environment/Base(系統環境/基礎)
- System Environment/Daemons (系統環境/守護)
- System Environment/Kernel (系統環境/內核)
- System Environment/Libraries (系統環境/函數庫)
- System Environment/Shells (系統環境/接口)
- User Interface/Desktops(用戶界面/桌面)
- User Interface/X (用戶界面/X窗口)
- User Interface/X Hardware Support (用戶界面/X硬件支持)
Source:源程序軟件包的名字。如 stardict-2.0.tar.gz。%description:軟件包詳細說明,可寫在多個行上。
(2)%prep段
這個段是預處理段,通常用來執行一些解開源程序包的命令,為下一步的編譯安裝作準備。%prep和下面的%build,%install段一樣,除 了可以執行Linux rpm所定義的宏命令(以%開頭)以外,還可以執行SHELL命令,命令可以有很多行,如我們常寫的tar解包命令。
(3)build段
本段是建立段,所要執行的命令為生成軟件包服務,如make 命令。
(4)%install段
本段是安裝段,其中的命令在安裝軟件包時將執行,如make install命令。
(5)%files段
本段是文件段,用于定義軟件包所包含的文件,分為三類--說明文檔(doc),配置文件(config)及執行程序,還可定義文件存取權限,擁有者及組別。
(6)%changelog段
本段是修改日志段。你可以將軟件的每次修改記錄到這里,保存到發布的軟件包中,以便查詢之用。每一個修改日志都有這樣一種格式:***行是:* 星期 月 日 年 修改人 電子信箱。其中:星期、月份均用英文形式的前3個字母,用中文會報錯。接下來的行寫的是修改了什么地方,可寫多行。一般以減號開始,便于后續的查閱。
三、源代碼打包
將源代碼打包,如 stardict-2.0.tar.gz,并將文件放到spec文件Source段所描述的路徑下,通常為/usr/src/redhat/SOURCES/目錄下(不同的Linux發布版本略有不同,如OpenSUSE為 /usr/src/packages/SOURCES/)
四、Linux rpm打包
Linux rpmbuild -ba ‘spec文件路徑’(Linux rpmbuild常用參數: -bb 只編譯二進制Linux rpm包 -bs 只編譯源碼Linux rpm包 -ba 同時編譯二進制和源碼Linux rpm包)build完后,可以在/usr/src/redhat/Linux rpmS/下找到二進制Linux rpm包,Linux rpm包按照其對應的cpu體系結構分類,通常在/usr/src/redhat/Linux rpmS/i386目錄下/usr/src/redhat/SLinux rpmS/下找到源碼Linux rpm包,此時由于是源代碼,所以無須按體系結構分類。
【編輯推薦】