RedHat Linux作業系統軟體包的管理(轉)

BSDLite發表於2007-08-12
RedHat Linux作業系統軟體包的管理(轉)[@more@]  在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

  注意:對於遠端安裝來說,建議不要忘記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: 模式不匹配,包括許可權和檔案型別

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-948731/,如需轉載,請註明出處,否則將追究法律責任。

相關文章