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