在Red Hat Linux下,標準的軟件包是通過RPM來進行管理的。RPM的全名是Red Hat Package Manager,從名字就知道,它是由Red Hat公司開發的軟件包管理系統。使用RPM軟件包管理系統有下面這些優點:
1. 安裝、升級與刪除軟件包都很容易
2. 查詢非常簡單
3. 能夠進行軟件包的驗證
4. 支持源代碼形式的軟件包
下面的說明,將充分體現出以上四個優點。
RPM軟件包通常是以xxx.rpm的格式命名的,就好像HP-UX下標準的軟件包是xxx.depot的形式一樣。一般,一個標準的RPM軟件包的名字能夠告訴我們一些信息,例如rhviewer-3.10a-13.i386.rpm,從這樣一個名字的RPM軟件包,我們可以知道,軟件的名稱是rhviewer,版本是3.10a,次版本是13,運行的平臺是i386。
RPM通常有5種方式來管理RPM軟件包:安裝、刪除、升級、查詢和驗證。
1. 安裝
#rpm -ivh rhviewer-3.10a-13.i386.rpm
其中使用到的參數ivh說明如下:
i: 使用RPM的安裝模式
v: 在安裝的過程中顯示安裝的信息
h: 在安裝的過程中輸出#號
另外,RPM還能夠通過FTP來進行遠程安裝,形式其實和本地安裝差不多,只要在文件名的前面加上適當的路徑就可以了:
#rpm -ivh ftp://xxxx/rhviewer-3.10a-13.i386.rpm
注意:對于遠程安裝來說,建議不要忘記h參數,不然可能不知道安裝程序是否還在進行?;蛘?,也可以通過--percent參數來知道安裝的進度。對于詳細幫助信息,可以通過#rpm --help或者#man rpm來獲得。
在安裝過程中,可能會經常遇到以下幾種情況:
<1>重復安裝軟件包
如果要安裝的軟件之前已經安裝過,就會在安裝過程中出現以下錯誤信息:
#rpm -ivh rhviewer-3.10a-13.i386.rpm
package rhviewer-3.10a-13 is already installed
如果確定重新安裝一次,可以加上--replacepkgs參數:
#rpm -ivh --replacepkgs rhviewer-3.10a-13.i386.rpm
<2>軟件包中用到的某個文件已經被其他軟件包安裝
這種情況可能最常出現,多個軟件包都包含某個或某些文件,當安裝了第一個軟件包,再安裝其他軟件包的時候,就會出現以下錯誤:
#rpm -ivh rhviewer-3.10a-13.i386.rpm
rhviewer /usr/bin/rhviewer conflicts with file from
msviewer-1.10b-01
error: rhviewer-3.10a-13.i386.RPM cannot be installed
此時,可以用--replacefiles參數:
#rpm -ivh --replacefiles rhviewer-3.10a-13.i386.rpm
<3>軟件包之間的相關性
有的時候,一個軟件包的作用要基于另外一個軟件包,如果安裝該軟件包時候沒有安裝需要的另外一個軟件包,就會有錯誤信息:
#rpm -ivh rhviewer-3.10a-13.i386.rpm
failed dependencies: rhviewer is needed by rhpainter-2.24-20
此時,建議先安裝這個需要的軟件包。不過,如果你愿意嘗試一下是否不安裝這個需要的軟件包是否也能夠正常使用你真正要安裝的軟件的話,可以加上--nodeps參數:
#rpm -ivh --nodps rhviewer-3.10a-13.i386.rpm
2. 刪除
#rpm -e rhviewer
注意:這里接的不是安裝時候軟件包的名字rhviewer-3.10a-13.i386.rpm,而只要用rhviewer或者rhviewer-3.10a-13就可以了。建議的方式是先用RPM查詢出你要刪除的軟件,然后用該命令刪除。
這里最常出現的錯誤提示就是,當你要刪除的軟件包被其他軟件包關聯時候,就會出現錯誤提示:
#rpm -e rhviewer
removing these packages would break dependencies: rhviewer is neededby rhpainter-2.24-20
3. 升級
更新軟件包的版本到最新版本,也是經常用到的:
#rpm -Uvh rhviewer-3.10a-13.i386.rpm
升級軟件的模式其實是先刪除舊軟件包,然后再安裝新軟件包。而且,你還可以選擇用這種升級的模式來安裝軟件包,因為,沒有舊軟件包的情況下,此升級方式仍然可正常運行。
如果系統中有舊版本存在,你就可以看到以下信息:
#rpm -Uvh rhviewer-3.10a-13.i386.rpm
saving /etc/rhviewer.conf as /etc/rhviewer.conf.rpmsave
如果,你要降低當前版本到更老的版本,一個辦法就是刪除該版本,然后再重新安裝舊的版本,也可以用--oldpackage參數來進行“升級”:
#rpm -Uvh --oldpackage rhviewer-3.10a-13.i386.rpm
補充說明:
還有一種升級的安裝方式:更新。
#rpm -Fvh rhviewer-3.10a-13.i386.rpm
更新和普通升級的方式是,當系統中沒有舊版本時,普通的升級安裝仍然會安裝該軟件,而更新的模式就不會安裝。
4. 查詢
#rpm -q rhviewer
rhviewer-3.10a-13
如果要查詢的軟件忘記了名字,可以用#rpm -qa來顯示出所有的已經安裝的軟件。
更詳細的軟件信息,可以用#rpm -qi來查詢。
5. 驗證
#rpm -V rhviewer
說明:驗證rhviewer軟件包的正確性
#rpm -Vf /bin/vi
說明:驗證包含/bin/vi文件的軟件包
#rpm -Va
說明:驗證所有軟件包
#rpm -Vp rhviewer-3.10a-13.i386.rpm
說明:使用.rpm文件來驗證軟件包的正確性
驗證模式會比較原始軟件包信息及安裝在系統中的軟件包文件信息,包括每個文件的大小、MD5 checksum、權限、類型、擁有者及所屬的文件組。在驗證后若沒有任何輸出,表示軟件包正常。如果有不一致的地方,RPM將會顯示出它們的錯誤碼。下面列出一些可能的錯誤碼:
5: MD5校驗碼不匹配
S: 文件大小不匹配
L: 符號連接錯誤
T: 文件修改時間不匹配
D: 設備屬性不匹配
U: 用戶不匹配
G: 文件組不匹配
M: 模式不匹配,包括權限和文件類型。