rpm與src.rpm區別及安裝

studywell發表於2015-02-28
轉:http://ontheroad-luckhouge.iteye.com/blog/1124215

xxxxxxxxx.rpm   <==RPM 的格式,已經經過編譯且包裝完成的 rpm 檔案;
  xxxxx.src.rpm   <==SRPM的格式,包含未編譯的原始碼資訊。

  那麼我們怎麼知道這個套件的版本、適用的平臺、打包的次數呢?呵呵!只要透過檔名就可以知道了!例如 rp-pppoe-3.1-5.i386.rpm 這的檔案的意義為:

  rp-pppoe -        3.1    -     5        .i386        .rpm
  套件名稱   套件的版本資訊 釋出的次數 適合的硬體平臺 副檔名

  除了後面適合的硬體平臺與副檔名外,主要是以‘-’來隔開各個部分, 這樣子可以很清楚的發現該套件的名稱、版本資訊、打包次數與操作的硬體平臺! 好了,來談一談每個不同的地方吧:

  * 套件名稱:
  當然就是每一個套件的名稱了!上面的範例就是 rp-pppoe 。

  * 版本資訊:
  每一次更新版本就需要有一個版本的資訊,否則如何知道這一版是新是舊? 這裡通常又分為主版本跟次版本,以上面為例,主版本為 3 ,在主版本的架構下更動部分原始碼內容,而釋出一個新的版本,就是次版本啦! 以上面為例,就是 1 囉!

  * 釋出版本次數:
  也就是編譯的次數啦!那麼為何需要重複的編譯呢? 這是由於同一版的套件中,可能由於有某些 bug 或者是安全上的顧慮,所以必須要重新設定當初打包時候的設定引數, 設定完成之後重新編譯並打包成 RPM 檔案!因此就有不同的打包數出現了!( 注:這個時候原始碼其實還是 3.1 那個版本,只是下達編譯時的引數不同而已! )

  * 操作硬體平臺:
  這是個很好玩的地方,由於 RPM 可以適用在不同的操作平臺上, 但是由於不同的平臺設定的引數還是有所差異性!並且,我們可以針對比較高階的 CPU 來進行最佳化引數的設定,所以就有所謂的 i386, i586, i686 與 noarch 等的檔案名稱出現了!

  平臺名稱    適合平臺說明
  i386     幾乎適用於所有的 x86 平臺,不論是舊的 pentum 或者是新的 pentum-IV 與 K7 系列的 CPU等等,都可以正常的工作!那個 i 指的是 Intel 相容的 CPU 的意思,至於 386 不用說,就是 CPU 的等級啦!
  i586     就是 586 等級的電腦,那是哪些呢?包括 pentum 第一代 MMX CPU, AMD 的 K5, K6 系列 CPU ( socket 7 插腳 ) 等等的 CPU 都算是這個等級;
  i686     在 pentun II 以後的 Intel 系列 CPU ,及 K7 以後等級的 CPU 都屬於這個 686 等級!
  noarch     就是沒有任何硬體等級上的限制。一般來說,這種型別的 RPM 檔案,裡面應該沒有 binary file 存在。

  需要額外說明的是, i386 的檔案可以在任何的機器上面安裝, 不論是 586 或者是 686 的機器,但是 i686 則不一定可以使用於 386 或者是 586 的硬體上面,這是因為 i686 的 RPM 檔案在編譯的時候,主要是針對 686 硬體等級的 CPU 來進行最佳化編譯,而 386/586 等級的硬體可能由於無法支援該最佳化引數, 所以無法使用呢!另外,在 686 的機器上使用 i686 的檔案會比使用 i386 的檔案,效能可能比較好一些!無論如何,使用 i386 應該就是比較沒有問題的啦!另外,由於不同的 distirbution 會有不同的環境與函式庫,所以在 i386 之後也有可能會額外再加上該套件的簡寫!


==安裝============================================
有些軟體包是以.src.rpm結尾的,這類軟體包是包含了原始碼的rpm包,在安裝時需要進行編譯。這類軟體包有兩種安裝方法:

方法一:
1. 執行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一個和你的軟體包同名的specs檔案
4. cd /usr/src/redhat/BUILD/your-package/ 一個和你的軟體包同名的目錄
5. ./configure 這一步和編譯普通的原始碼軟體一樣,可以加上引數
6. make
7. make install

方法二:
1. 執行rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS (前兩步和方法一相同)
3. rpmbuild -bb your-package.specs 一個和你的軟體包同名的specs檔案

這時,在/usr/src/redhat/RPM/i386/ (根據具體包的不同,也可能是i686,noarch等等) 在這個目錄下,有一個新的rpm包,這個是編譯好的二進位制檔案。執行:

rpm -i new-package.rpm即可安裝完成。

rpm安裝方式:rpm -ivh *.rmp

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

相關文章