歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux創建RPM包思路

Linux創建RPM包思路

日期:2017/2/27 16:03:16   编辑:Linux教程
A:RPM是什麼?
RPM(Red Hat Package Manager)是用於 Linux 分發版(distribution)的最常見的軟件包管理器。
RPM包命名方式:name-version-release.architecture.rpm
如:hadoop-1.0.3-1.el6.x86_64.rpm,hadoop-1.0.3-2.el6.noarch.rpm

B:RPM能做什麼?
RPM有五種基本的操作功能:安裝、卸載、升級、查詢和驗證。這五種基本功能的實現僅僅需要用rpm + 選項 + rpm包就能輕易地實現。這五個功能常用的方式如下(以mysql為例):

安裝: rpm –ivh mysql-5.1.61-4.el6.i686.rpm

查詢: rpm –qa mysql:查詢跟mysql有關的包。

刪除: rpm –e mysql-5.1.61-4.el6.i686,一般的話都會先通過查詢已經安裝好的包,然後執行刪除命令,上述命令,即可卸載掉系統安裝好的rpm包。

升級: rpm –Uvh mysql-5.1.61-4.el6.i686.rpm

驗證: rpm –V mysql-5.1.61-4.el6.i686.rpm。對已經安裝了的程序進行驗證。

C:怎麼創建RPM包?
首先要定義一個構建rpm包的目錄,如mkdir –p /root/rpmbuild,但是,僅僅這樣是不能指定rpmbuild即rpm包的目錄,因為系統有默認的rpm構建的目錄,這時需要在rpmbuild目錄底下建一個.rpmmacros文件,用來指定rpm構建的目錄位置,然後再在rpmbuild底下創建以下四個目錄:BUILD,RPMS,SOURCES,SPECS,如下圖所示。


下面按照創建RPM包的步驟,邊講解邊對各個目錄的作用進行敘述。假設,我們要創建的rpm包為:test-1.0.1-1.el6.i686.rpm,打包的壓縮文件為:test-1.0.1.tar.gz。

  1. vim .rpmmacros鍵入如下內容:%_topdir /rpm/rpmbuild,這是為了制定rpm構建的目錄位置。
  2. 把test-1.0.1.tar.gz拷貝到SOURCE目錄底下。
  3. 轉至SPECS目錄底下,編寫test.spec描述文件,這個文件是創建rpm包最重要的部分,它會制定rpm包裡的軟件的安裝目錄,以及安裝軟件前後要注意的問題,軟件的依賴及系統要求,後面會詳細介紹。
  4. 編譯RPM,執行命令:rpmbuild –ba test.spec。這樣以後,就開始創建rpm包如果成功的話,繼續往下看。
  5. 執行rpmbuild –ba test.spec,會首先把test-1.0.1.tar.gz解壓縮到BUILD目錄,系統會自動建立BUILDROOT這個目錄(如上圖所示),這個目錄用來存放執行時存放的臨時文件夾,這個目錄也很重要,需要把在此目錄建立相關目錄以及拷貝相關文件信息的腳本寫入test.spec文件裡,以防編譯出錯,無法生成RPM包。成功執行完成之後,會在RPMS這個目錄生成i686/ test-1.0.1-1.el6.i686.rpm文件。以下圖片描述這個過程以及附了SPEC文件。如下圖:

Copyright © Linux教程網 All Rights Reserved