百科解釋
什么是 RPM 與 SRPM RPM 全名是『 RedHat Package Manager 』簡稱則為 RPM 啦!顧名思義,當初這個套件管理的程序是由 Red Hat 這家公司發(fā)展出來的,但其實在很多的其它套件也有相類似的套件管理程序。不過由于 RPM 使用上很方便,所以就成了目前最熱門的套件管理程序啦! 那么什么是 RPM 呢?說的簡單一點, RPM 是以一種數據庫記錄的方式來將你所需要的套件安裝到你的 Linux 主機的一套管理程序。他最大的特點就是將您要安裝的套件先編譯過( 如果需要的話 )并且打包好了,透過包裝好的套件里頭預設的數據庫記錄,記錄這個套件要安裝的時候必須要的相依屬性模塊( 就是你的 Linux 主機需要先存在的幾個必須的套件 ),當安裝在你的 Linux 主機時, RPM 會先依照套件里頭的紀錄數據查詢 Linux 主機的相依屬性套件是否滿足,若滿足則予以安裝,若不滿足則不予安裝。那么安裝的時候就將該套件的信息整個寫入 RPM 的數據庫中,以便未來的查詢、驗證與反安裝!這樣一來的優(yōu)點是: 1. 由于已經編譯完成并且打包完畢,所以安裝上很方便( 不需要再重新編譯 ); 2. 由于套件的信息都已經記錄在 Linux 主機的數據庫上,很方便查詢、升級與反安裝; 但是這也造成很大的困擾,由于 RPM 程序是已經包裝好的數據,也就是說,里面的數據已經都『編譯完成』了!所以,安裝的時候一定需要當初安裝時的主機環(huán)境才能安裝,也就是說,當初建立這個套件的安裝環(huán)境必須也要在你的主機上面出現才行!例如 rp-pppoe 這個 ADSL 撥接套件,他必須要在 ppp 這個套件存在的環(huán)境下才能進行安裝!如果你的主機并沒有 ppp 這個套件,那么很抱歉,除非您先安裝 ppp 否則 rp-pppoe 就是不讓你安裝的( 當然您可以強制安裝,但是通常都會有點問題發(fā)生就是了! )。所以,通常不同的 distribution 所釋出的 RPM 檔案,并不能用在其它的 distributions 里面,舉例來說, Red Hat 釋出的 RPM 檔案,通常無法直接在 Mandrake 上面進行安裝的,更有甚者,不同版本之間也無法互通,例如 Mandrake 9.0 的 RPM 檔案就無法直接套用在 8.2 上面!因此,這樣可以發(fā)現他的缺點是: 1. 安裝的環(huán)境必須與打包時的環(huán)境需求一致或相當; 2. 需要滿足套件的相依屬性需求; 3. 反安裝時需要特別小心,最底層的套件不可先移除,否則可能造成整個系統(tǒng)的問題! 那怎么辦?呵呵!還好,還有 SRPM 這個東西! SRPM 是什么呢?顧名思義,他是 Source RPM 的意思,也就是這個 RPM 檔案里面含有原始碼( Source Code )哩!特別注意的是,這個 SRPM 所提供的套件內容『并沒有經過編譯』,他提供的是原始碼喔!通常 SRPM 的附檔名是以 ***.src.rpm 這種格式來命名的。不過,既然 SRPM 提供的是原始碼,那么為什么我們不使用 Tarball 直接來安裝就好了?!這是因為 SRPM 雖然內容是原始碼,但是他仍然含有該套件所需要的相依性套件說明、以及所有 RPM 檔案所提供的數據,同時,他與 RPM 不同的是,他也提供了參數設定檔( 就是 configure 與 makefile 啦! )。所以,如果我們下載的是 SRPM ,那么要安裝該套件時,RPM 套件管理員將會(1)先將該套件以 RPM 管理的方式編譯,(2)然后將編譯完成的 RPM 檔案安裝到 Linux 系統(tǒng)當中。與 RPM 檔案相比, SRPM 多了一個重新編譯的動作,而且 SRPM 編譯完成會產生 RPM 檔案。 怪了,怎么 SRPM 這么麻煩吶!還要重新編譯一次,那么我們直接使用 RPM 來安裝不就好了!?通常一個套件在釋出的時候,都會同時釋出該套件的 RPM 與 SRPM 。我們現在知道 RPM 檔案必須要在相同的 Linux 環(huán)境下才能夠安裝,而 SRPM 既然是原始碼的格式,自然我們就可以透過修改 SRPM 內的參數設定檔,然后重新編譯產生能適合我們 Linux 環(huán)境的 RPM 檔案,如此一來,不就可以將該套件安裝到我們的系統(tǒng)當中,而不必與原作者打包的 Linux 環(huán)境相同了?這就是 SRPM 的用處了!
移動通信網 | 通信人才網 | 更新日志 | 團隊博客 | 免責聲明 | 關于詞典 | 幫助