[linux] RPM 套件基本操作

RPM 全名是[ RedHat Package Manager ]簡稱則為 RPM ,
RPM 是以一種資料庫記錄的方式來將你所需要的軟體安裝到你的 Linux 系統的一套管理機制.
他主要的功能是將你要安裝的軟體先編譯過, 並且打包成為 RPM 機制的包裝檔案,
透過包裝好的軟體裡頭預設的資料庫記錄, 記錄這個軟體要安裝的時候必須具備的相依屬性軟體,
當安裝在你的 Linux 主機時, RPM 會先依照軟體裡頭的資料查詢 Linux 主機的相依屬性軟體是否符合,
若符合則進行安裝, 若不符合則不予安裝.

這邊來說明一下幾個常用的操作指令.

* 安裝套件

rpm -ivh 軟體套件名稱

i 是 install,v(verbose)是顯示,h 是進度以一串 ########### 來表示
若套件已安裝過, 會收到類似訊息如下:

套件名稱 is already installed..

如果要重新安裝可用--force (表示強行置換)指令:

rpm -ivh --force 套件名稱

*沒有相依的套件
EX:

rpm -ivh php-imap.x.rpm

failed dependencies:imap is needed by php-imap
如果不管軟體的相依性,可用--nodeps指令強制安裝

rpm -ivh --nodeps php-ldap*.rpm

*移除套件

 rpm -e 套件名稱

*升級套件 

rpm -Uvh 套件名稱

U是upgrade, 表示會把舊的軟體移除再安裝新的,所以不管有沒有安裝過都可以使用rpm -Uvh來安裝軟體


*更新套件

rpm -Fvh 套件名稱

-F 選項有個特性:只有已經安裝過的套件才會更新,這點和 rpm -Uvh 中的 U 升級是不同的,因此極適合拿來大量修補套件之用。


*查詢
EX:

rpm -qa | grep imap
rpm -ql apache

a 是 all,q 是 query 查詢已安裝的套件,grep 是搜尋符合的字串
l 是列出的意思(list)

rpm -qf /usr/bin/neat

查詢 neat 這個指令是從那一個 rpm 套件安裝的