天天看點

Linux 下用來查詢安裝包資訊的RPM選項

rpm是redhat的包管理器,用來安裝、解除安裝、更新和查詢基于redhat linux的安裝包。rhel和基于它的系統使用rpm指令來完成這些功能。以下是一些例子來示範rpm的查詢功能,和展示了用不同的方法來查詢rpm資料庫和還原配置檔案。

我在示例指令中使用ssh包來做說明。

Linux 下用來查詢安裝包資訊的RPM選項

<a target="_blank"></a>

輸出顯示了一些關于ssh的包,但是你仍需确定哪個包真正安裝了ssh。為了更近一步,請看下面的示例。

如你所見,ssh是通過openssh-server-5.3p1-84.1.el6.x86_64包安裝的,你可以在守護程序或者配置檔案中使用rpm -qf指令(查詢ssh包所包含的任一檔案來查詢)。兩者都會輸出從那個軟體包安裝的。

上面的輸出顯示了所有該包在系統中安裝的檔案。現在讓我們更進一步,我們隻想要看到該包提供的配置檔案和文檔。

考慮一種情況,你想要配置一個服務,但是你不知道哪裡找到配置檔案。舉例來說,如上面的例子:使用rpm -qf rpm -qf /etc/init.d/sshd來找出 /etc/ssh/sshd_config這個檔案源于哪個包。這應該會給你顯示openssh-server-5.3p1-84.1.el6.x86_64包。使用rpm -ql openssh-server-5.3p1-84.1.el6.x86_64來顯示包中所含的所有檔案。如你所見,許多檔案名顯示了出來,但是輸出并不很有用。

如果由于一些原因檔案損壞或者從系統中删除了,你可以以rpm -qf開頭來找出檔案存在于哪個包。接下來使用rpm2cpio | cpio -idmv來從包中解壓出檔案。用ssh的例子。

假設/etc/ssh/sshd_config檔案已經删除并且你不希望重裝ssh,按以下步驟來還原檔案。

使用rpm -qf /etc/init.d/sshd 這個指令會顯示檔案來自于openssh-server-5.3p1-84.1.el6.x86_64包。

從它的源中下載下傳openssh的rpm包。

複制openssh-server-5.3p1-84.1.el6.x86_64包到/tmp目錄或者其他任何你選擇的目錄。

使用rpm2cpio |cpio -idmv解壓包。

上面步驟中你使用的指令會在/tmp下面建立一個子目錄。你現在可以複制到它的原始目錄。

 原文釋出時間為:2013-11-21

本文來自雲栖社群合作夥伴“linux中國”