1. 程式人生 > 其它 >Linux軟體安裝(二)——RPM與YUM

Linux軟體安裝(二)——RPM與YUM

Linux軟體管理程式

上一篇文章介紹了使用原始碼編譯的方式安裝Linux軟體,雖然操作比較簡單,但仍有如下不足之處: 1. 原始碼需要經過編譯成二進位制檔案後才能供系統執行,而編譯過程相對比較繁瑣; 2. 軟體的管理比較散亂,軟體的更新、解除安裝沒有統一的管理者。 針對原始碼安裝的缺點,Linux上出現了軟體管理程式,統一管理所有軟體的安裝、更新、解除安裝。它將當前系統中所安裝的軟體資訊儲存起來,這些資訊可供使用者查詢,瞭解當前系統的軟體安裝情況,從而方便軟體的更新與解除安裝。

RPM和DPKG

當前Linux上有兩款主流的軟體管理程式,分別是:RPM和DPKG。 這兩款軟體均提供線上升級機制。

  • RPM RPM全稱為Red Hat Package Manager,是Red Hat公司研發的Linux軟體管理程式。目前CentOS、SuSE、Fedora等作業系統使用它。 RPM使用YUM進行線上升級。
  • DPKG dpkg由Debian Linux開發,目前使用該軟體的作業系統有Ubuntu、B2D等。 dpkg使用apt-get進行線上升級。

PS:什麼是“線上升級機制”? 一個軟體往往會依賴其他軟體的一些功能,那麼在安裝過程中,只有確保一個軟體所依賴的所有軟體都被安裝後,該軟體才能被正確安裝。 而線上升級機制能夠在軟體安裝過程中,若發現該軟體的依賴軟體尚未安裝,則會自動從網際網路中下載所依賴的軟體。這就是線上升級機制。

這裡以RPM為例,介紹軟體管理程式的特性與使用。

使用RPM安裝的優點

1.避免編譯過程 由於RPM所提供的安裝包是已經是經過編譯的二進位制檔案,因此無需編譯,直接將其存放至指定路徑即可執行。 2.方便管理軟體 RPM軟體在安裝過程中會將軟體的相關資訊記錄在專門的資料庫中,這些資料可方便今後的軟體更新與解除安裝。使用者也可查詢本機軟體安裝情況。

使用RPM安裝的缺點

軟體的RPM安裝包對作業系統的版本和硬體環境具有嚴格的要求,不同廠商的作業系統往往不能共享同一個安裝包,甚至同一廠商不同版本的作業系統也無法共享同一個安裝包。 為了解決RPM安裝包無法共享的問題,Red Hat提供了SRPM。

什麼是SRPM?

SRPM是Source Red Hat Package Manager的縮寫。顧名思義,它是包含原始碼的RPM安裝包。 和普通原始碼不同的是,SRPM中除了原始碼外還包含了供RPM安裝時所需的軟體資訊。 當你要安裝的軟體並沒有適合你的作業系統的版本時,你可以下載SRPM版本,先將SRPM中的原始碼編譯成RPM,然後使用rpm命令安裝該軟體。 通常一個軟體會同時釋出rpm版本和srpm版本;srpm版本的檔名通常為xxx.src.rpm。

RPM的使用

1.安裝

rpm -ivh 安裝包的名字

i:install的縮寫,表示安裝
v:檢視詳細的安裝過程
h:顯示安裝進度

注意點: - 因為安裝軟體是root的工作,因此rpm命令需要root許可權。 - 安裝完成後,軟體的相關資訊會被寫入/var/lib/rpm中。未來軟體升級、解除安裝、軟體資訊查詢均通過該資料庫進行。 - 軟體會被安裝到如下目錄:

目錄

/etc

存放軟體的配置檔案

/usr/bin

存放軟體的可執行檔案(二進位制檔案)

/usr/lib

存放軟體的動態函式庫

/usr/share/doc

存放軟體的參考手冊

/usr/share/man

存放各個軟體的man page檔案

2.升級

rpm -Uvh 需要升級的軟體名

-Uvh:若待升級的軟體尚未安裝,則直接安裝
rpm -Fvh 需要升級的軟體名

-Fvh:若待升級的軟體尚未安裝,則該軟體不會被安裝

3.查詢

rpm -q 軟體名   //判斷該軟體是否已被安裝
rpm -qa         //列出所有已安裝的軟體名
rpm -qi 軟體名  //列出該軟體的詳細資訊
rpm -ql 軟體名  //列出該軟體所有的檔案
rpm -qc 軟體名  //列出該軟體的所有配置檔案(即/etc/該軟體相關的所有檔案)
rpm -qd 軟體嗎  //列出該軟體的所有幫助檔案(即/usr/share/man/該軟體相關的所有檔案)
rpm -qR 軟體名  //列出該軟體所依賴軟體的檔案
rpm -qf 檔名  //找出該檔案屬於哪一個軟體
rpm -qp[上述引數] 安裝包名//列出安裝包中指定的資訊

查詢的資訊分為兩類,一類是查詢已被安裝的軟體的資訊,另一類是查詢尚未被安裝的軟體安裝包的資訊。 第一類資訊通過rpm -q查詢,第二類資訊通過rpm -qp查詢。

4.解除安裝

rpm -e 軟體名

解除安裝一個軟體非常方便,只需執行上述命令即可。 但一個軟體所提供的動態函式庫被其他軟體引用,那麼該軟體將無法解除安裝,除非將引用該函式庫的所有軟體都解除安裝後才能解除安裝。

5.重建資料庫

當/var/lib/rpm內的檔案發生損壞時,可以通過如下命令修復:

rpm --rebuilddb

YUM的使用

RPM雖然省去了編譯過程,並且提供資料庫儲存軟體的資訊,但仍然需要我們手動下載RPM安裝包,而YUM的出現解決了這一問題。 較多軟體的RPM安裝包都存放在了YUM Server上,只要我們的計算機能連網際網路,就能使用yum自動下載RPM安裝包並安裝軟體。

1.查詢

yum [-y/--installroot=xxx] [search/list/info/provides] [引數]

-y:在安裝軟體過程中若有詢問,自動輸入yes
--installroot=xxx:將xxx作為軟體的安裝目錄
search:關鍵詞搜尋軟體資訊,後面需要加上關鍵詞
list:列出yum管理的所有軟體名稱與版本,類似於rpm -qa
    info:同上,類似於rpm -qi
provides:從檔案中搜索軟體,類似於rpm -qf

2.安裝

yum install 軟體名

3.升級

yum update 軟體名

若需升級整個系統,直接yum update即可。

4.解除安裝

yum remove 軟體名