如轉(zhuǎn)載,請注明出處: http://blog.csdn.net/robinson_0612/archive/2009/10/08/4699969.aspx
?
?????? RPM全名是RedHat Package Manager,簡稱為RPM,又稱之為RPM軟件包管理器,使RedHat套件管理程序之一,類似于Windows控制面板中的添加刪除模塊,Windows添加刪除程序通過將安裝信息記錄在注冊表,以便于程序的更新,卸載。而RPM同樣有著類似的功能,用于linux下套件包的安裝與管理。
????? 一、RPM與SRPM簡介及功能
????? 1. RPM:RPM通過采用數(shù)據(jù)庫記錄的方式來將所需要的套件安裝到Linux系統(tǒng)中。RPM包的格式為*.rpm,RPM包為已經(jīng)經(jīng)過編譯且包裝完成的rpm文件,這是其最大的特點(diǎn)。與我們通用的軟件安裝類似,在安裝所需的套件之前,先根據(jù)套件中提供的安裝參數(shù)檢查該套件安裝所需的環(huán)境,如果系統(tǒng)的環(huán)境與套件中所要求的環(huán)境相一致(軟件包打包時的環(huán)境),則可以成功安裝,否則會提示報錯,或提示其安裝依賴屬性模塊,需預(yù)先安裝某某套件才可以再安裝該套件。成功安裝套件后,RPM套件管理器會將所安裝的套件包記錄到RPM數(shù)據(jù)庫中,以便后續(xù)的查詢、驗(yàn)證、升級、卸載等。
????
??? ?2. SRPM:與RPM最大的特點(diǎn)相對應(yīng),SRPM就是包含了Source code的RPM,即SRPM提供的內(nèi)容為源碼,當(dāng)然也就沒有經(jīng)過編譯。 同時SRPM也提供了參數(shù)配置文件(configure與makefile)。想必大家已經(jīng)知道,它與RPM最大的差異是,在安裝套件時需要通過RPM管理器將要安裝的套件以RPM管理的方式進(jìn)行編譯,根據(jù)系統(tǒng)環(huán)境修改參數(shù)配置文件,然后將編譯好的RPM安裝到Linux系統(tǒng)中。由此可以看出SRPM在編譯時修改了參數(shù)配置文件,無需與當(dāng)時打包的環(huán)境一致,從而降低了對套件包所需的安裝環(huán)境。
???? 二、RPM,SRPM包的格式及其說明
???? 1.RMP與SRPM的格式通常為:
?????????? *.rpm???????? 如:compat-db-4.1.25-9.i386.rpm
??????????? *.src.rpm?? 如:compat-db-4.1.25-9.i386.src.rpm
??????? 按以上簡介可知,compat-db-4.1.25-9.i386.rpm為已經(jīng)經(jīng)過編譯的文件,compat-db-4.1.25-9.i386.src.rpm則為沒有經(jīng)過編譯的文件,通常套件在發(fā)行之前,同時提供rpm及srpm文件。
??? 2. 關(guān)于文件中i386,i686的說明:
??????? i386指這個軟件包適用于intel 80386以上的所有x86平臺的計算機(jī)。
??????? i686指這個軟件包適用于intel 80686以上,即Pentinum II以后Intel 系列的x86平臺的計算機(jī),K7以后等級的CPU。
??????? noarch指這個軟件包與硬件架構(gòu)無關(guān),可以通用。
??? 3. 套件的文件名及版本:
?????? ?如上述compat-db-4.1.25-9說明該套件的名稱為compat-db,4.1.25-9為版本信息及發(fā)布次數(shù)。
?
??? 三、RPM的查詢功能
???? 1. 格式:[root@localhost ~]# rpm -parameter package_name
???????? rpm的查詢路徑: /var/lib/rpm目錄下的數(shù)據(jù)庫文件。
???????? parameter說明:
???????? -q? : 列出package_name是否已安裝到系統(tǒng)中。
???????? -qa:查詢系統(tǒng)中安裝的所有的包。
??????? ?-ql :查詢package_name中所有文件的安裝路徑。
??????? ?-qi :列出package_name中的詳細(xì)信息,包括開發(fā)商,版本,說明等。
???????? -V? :若package_name被修改過,則將其列出。
???? 2. 以下我們以在RHEL5.4下安裝oracle 10g為例,通過查詢所需的軟件包來介紹rpm的查詢功能。
???????? Sample 1 :查詢某套件是否已安裝,如要查詢binutils-2.15.92.0.2-13.EL4是否已安裝,如下:
???????? [root@localhost ~]# rpm? -q binutils
???????? binutils-2.17.50.0.6-12.e15??????????????? --表明包binutils 已被成功安裝,且列出的版本號高于所要查詢的版本。
???????? [root@localhost ~]# rpm? -q compat-db
???????? package compat-db is not installed??? --表明包c(diǎn)ompat-db沒有被安裝到系統(tǒng)中
???????
???????? Sample 2 :查詢binutils-2.15.92.0.2-13.EL4的詳細(xì)信息:
???????? [root@localhost ~]# rpm? -qi binutils??????? --結(jié)果省略
??????
?????????Sapmle 3 :查詢binutils-2.15.92.0.2-13.EL4的所有目錄與文件:
???????? [root@localhost ~]# rpm? -ql binutils?????? --結(jié)果省略
?
??? 四、RPM的安裝卸載功能
???????? 通過RPM查詢功能我們可以得到某些軟件包是否已安裝到系統(tǒng)中以及列出其路徑,詳細(xì)信息等。對于那些沒有安裝到系統(tǒng)中,且由于相關(guān)程序的依賴性,需要將其安裝的系統(tǒng)中,我們同樣可以通過RPM來完成,格式同上所述,僅僅是給RPM不同的參數(shù)而已。當(dāng)然也可以對其已安裝的軟件包進(jìn)行升級或卸載。
???? 1. 安裝軟件包。同RPM查詢功能中介紹的格式一樣,僅僅將parameter改為 ivh 即可。ivh通常組合在一起使用,也可以分開使用。i代表install的意思,v則表示顯示更詳細(xì)的安裝信息,h表示顯示安裝進(jìn)度。因此本人更傾向于同時使用上述三個參數(shù)。
???? Sample 1 :安裝我們前一節(jié)所述的不存在的compat-db包
???? [root@localhost ~]# rpm? -ivh compat-db-4.1.25-9????
???? 這里將安裝結(jié)果圖截屏供大家參考:
????? 可以到Google搜索該軟件包,也可以到以下網(wǎng)址下載: http://linuxsoft.cern.ch/cern/slc4X/i386/yum/os/repodata/repoview/compat-db-0-4.1.25-9.html
????? 當(dāng)然也可以通過網(wǎng)址來安裝該軟件包,前提是你的Linux系統(tǒng)能正常連接到Internet。
????? 如:[root@localhost ~]# rpm? -ivh http://linuxsoft.cern.ch/cern/slc4X/i386/yum/os/compat-db-4.1.25-9.i386.rpm
????
???? Sample 2: 同時安裝多個軟件包,只要在參數(shù)ivh后面跟多個軟件包即可,請確保路徑可以正確找到所需的軟件包。
??? ?[root@localhost ~]# rpm? -ivh compat-db-4.1.25-9 compat-libstdc++-296-2.96-132.7.2
????
? ? 2. 更新與卸載軟件包
??????? 此處包括更新軟件包和卸載軟件包,下面分開敘述。
??????? 更新軟件包的情況,以下僅提供參數(shù)說明,命令格式規(guī)范同前所述:
?????? ?參數(shù):-Fvh,對于已安裝的舊版軟件包,系統(tǒng)自動更新,對于沒有安裝后的后續(xù)軟件包系統(tǒng)則不會更新。
??????????????? ?-Uvh,對于已安裝的舊版軟件包,系統(tǒng)自動更新,對于沒有安裝后的后續(xù)軟件包系統(tǒng)直接安裝。
?????? 卸載軟件包的情況,以下僅提供參數(shù)說明,命令格式規(guī)范同前所述:
?????? 參數(shù):-e 卸載package_name中指定的軟件包。
????? ?注:關(guān)于SRPM的使用涉及到編譯的過程,在此不作敘述。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
