RPM的基礎(chǔ)知識(shí)
RPM是RedHat Package Manager的縮寫(xiě),意即RedHat(紅帽子)軟件包管理器。(RedHat是美國(guó)有名的LINUX公司,網(wǎng)址:http://www.redhat.com
對(duì)于一個(gè)操作系統(tǒng)來(lái)說(shuō),不能沒(méi)有一個(gè)象樣的軟件包管理器。沒(méi)有軟件包管理器的幫助,操作系統(tǒng)發(fā)行版的制作者將面臨這樣或那樣的難題,用戶(hù)安裝,升級(jí),卸載與發(fā)布軟件包也將是非常麻煩的,系統(tǒng)管理也容易出現(xiàn)問(wèn)題。相反,有了專(zhuān)門(mén)的軟件包管理器,軟件制作者易于制作和發(fā)行自己的軟件了,而對(duì)于普通用戶(hù)來(lái)說(shuō),軟件包的安裝維護(hù)將變得非常方便了。這種
情況,對(duì)于一個(gè)操作系統(tǒng)的推廣也會(huì)起到良好的促進(jìn)作用。RPM就是隨著RedHat LINUX發(fā)行版的流行而迅速推廣開(kāi)來(lái)的,二者的表現(xiàn)相得易彰。
RPM先行者
最初的時(shí)候,LINUX系統(tǒng)的發(fā)布并沒(méi)有使用什么軟件包管理器。隨著時(shí)間的推移,RedHatmLINUX開(kāi)發(fā)者意識(shí)到開(kāi)發(fā)一個(gè)軟件包管理器的重要性,于是開(kāi)發(fā)出RPP這個(gè)管理器。
RPP相對(duì)于RPM雖然是簡(jiǎn)單的,但已有了幾項(xiàng)重要的功能,如打一個(gè)簡(jiǎn)單的命令就可以實(shí)現(xiàn)軟件的安裝與卸載,包中可含有安裝前后與卸載前后執(zhí)行的腳本程序,還可以隨時(shí)校驗(yàn)已安裝的軟件包,查詢(xún)功能也很強(qiáng)大。
RPP的缺點(diǎn)在于,RPP打包是基于特別修改過(guò)的(針對(duì)RPP)源代碼的,因而這些源代碼并非是純正的源代碼。由于這個(gè)原因,當(dāng)軟件包開(kāi)發(fā)者想建立大量不同的軟件包時(shí),將面臨眾多技術(shù)面的問(wèn)題。RPP也不能保證當(dāng)前的執(zhí)行程序是基于打包過(guò)的源程序的,并且RPP不支持多處理器體系結(jié)構(gòu)。與RPP同時(shí)開(kāi)發(fā)的,還有PMS(即package
management system,軟件包管理系統(tǒng)),這是另一群LINUX愛(ài)好者開(kāi)發(fā)的。PMS采用的是純正的源代碼,它允許軟件包制作者很快釋出一個(gè)軟件的最新版本,并且可以立刻看到該軟件的變化。RPM采用了這一明智的做法,這也是PMS對(duì)RPM的一項(xiàng)重大貢獻(xiàn)。PMS的缺點(diǎn)是查詢(xún)功能不強(qiáng),沒(méi)有包校驗(yàn)功能,不支持多體系結(jié)構(gòu),數(shù)據(jù)庫(kù)設(shè)計(jì)也不好。在RPP和PMS之后,Rik
Faith和Doug Hoffman開(kāi)發(fā)了PM管理器。該管理器整合了RPP與PMS的許多功能,但是數(shù)據(jù)庫(kù)設(shè)計(jì)還不強(qiáng),依然不支持多體系結(jié)構(gòu)。
RPM開(kāi)發(fā)
此后,Marc Ewing和Erik Troan兩人在吸取RPP,PMS,PM設(shè)計(jì)經(jīng)驗(yàn)的基礎(chǔ)上,用PERL語(yǔ)開(kāi)發(fā)了RPM軟件包管理器,即RPM1.0版。
其成功之處在于:
可自動(dòng)處理配置文件;
可重建大量的軟件包;
易于使用。
其不足之處在于:
程序大,運(yùn)行速度慢,因?yàn)樗怯肞ERL這種解釋型的語(yǔ)言寫(xiě)的;
數(shù)據(jù)庫(kù)功能太弱;
不支持多體系結(jié)構(gòu);
包裹文件格式不可擴(kuò)展。
針對(duì)RPM1.0的弱點(diǎn),RPM的開(kāi)發(fā)者再度努力,將RPM升級(jí)到2.0,3.0和現(xiàn)在的4.0版本。他們主要做了以下幾點(diǎn):
用C重寫(xiě)了程序,這極大地提高了RPM的運(yùn)行速度。
RPM數(shù)據(jù)庫(kù)格式進(jìn)行了再設(shè)計(jì),重點(diǎn)從性能和可靠性?xún)煞矫嫣岣摺?br> 軟件包格式也進(jìn)行了再設(shè)計(jì),方便以后的擴(kuò)展和升級(jí)。
建立了rpmlib(RPM函數(shù)庫(kù)),方便其它程序調(diào)用RPM。
增加多體系支持,方便RPM跨平臺(tái)使用(不論是x86體系,還是sparc等其它體系)。
網(wǎng)上的RPM
RPM官方網(wǎng)址為http://www.rpm.org,
小結(jié)
如今的RPM使得軟件包安裝與卸載更容易,校驗(yàn)已安裝的軟件包是否正常也容易,將程序(源程序或執(zhí)行程序)打包也簡(jiǎn)單了,跨平臺(tái)的支持,遵循GPL版權(quán)發(fā)布源代碼,使得RPM得到更廣泛的應(yīng)用與推廣。RPM正在風(fēng)靡LINUX與非LINUX世界。如果你想了解甚至精通RPM,那么請(qǐng)跟我來(lái)吧!
評(píng)論
查看更多