Linux中國

教你如何在Fedora,CentOS,RHEL中檢查RPM包的依賴性

方法一

使用RPM命令可以列出目標包所依賴的所有包,如下: $ rpm -qR

注意,這種方法只適用於已安裝的包。如果你需要檢查一個未安裝包的依賴關係,你首先需要把這個包先下載到本地來(不需要安裝)。

要下載一個 RPM 包而不安裝,可以使用叫做'yumdownloader'的工具,下面我們先安裝yumdownloader:

$ sudo yum install yum-utils 

現在我們來檢查一個未安裝的RPM包的依賴關係(本例使用 tcpdump)。首先,我們使用yumdownloader把tcpdump的RPM包下載下來

$ yumdownloader --destdir=. tcpdump 

然後再使用 "-qpR"參數顯示該包的依賴關係。

# rpm -qpR tcpdump-4.4.0-2.fc19.i686.rpm

方法二

你可以使用repoquery工具來羅列包的依賴關係,它與包是否安裝無關,這個工具包含在yum-utils中。

$ sudo yum install yum-utils

顯示目標包所依賴的包:

$ repoquery --requires --resolve <package-name> 

為讓repoquery正常的工作,需要保持網路的暢通,應為repoquery需要在Yum庫中查找信息。

方法三

第三個方法是使用rpmreaper工具。這個工具本來是用作清理系統中無用以及它們所依賴的包,rpmreaper有很直觀的ncurses界面來展示已安裝的包和它們依賴關係的樹形圖。

安裝rpmrepater,在CentOS中,你需要先設置好EPEL庫

$ sudo yum install rpmreaper 

只需運行rpmreaper就可以看到RPM包的依賴關係:

$ rpmreaper 

rpmrepater會向用戶顯示已安裝包的列表,你可以使用上/下箭頭來滾動屏幕。

你可以在指定包上使用"r"鍵來顯示其依賴關係,循環在指定包上按下"r"鍵可以展示出餘下的信息。

"L"標誌的意思是說這個包是一片「孤葉」,意思說說沒有任何包依賴它。

"o"標誌是說這個包是整個依賴鏈的中間部分。

按下"b"鍵會顯示其他依賴於該包的其他包。

方法四

還有一個辦法是使用rpmdep工具,rpmdep是一個命令行工具,可以顯示已安裝包的完整包依賴關係圖。該工具會分析RPM包的依賴性,從完整的排完序的拓撲圖中摘取部分包的信息,形成列表展示給用戶。該工具的輸出結果可以直接使用到Dotty(可視化展示工具)中去。

在Fedora中安裝rpmdep和dotty:

$ sudo yum install rpmorphan graphviz 

在CentOs中安裝: $ wget http://downloads.sourceforge.net/project/rpmorphan/rpmorphan/1.14/rpmorphan-1.14-1.noarch.rpm $ sudo rpm -ivh rpmorphan-1.14-1.noarch.rpm $ sudo yum install graphviz

生成包依賴的拓撲關係圖(例如 gzip):

$ rpmdep.pl -dot gzip.dot gzip
$ dot -Tpng -o output.png gzip.dot 

教程到這個地方,我們用到了幾種辦法來檢查包的依賴關係。如果您想知道如何在居於Debian的系統中檢查.deb的包依賴關係,請閱讀另外一篇文檔

via: http://xmodulo.com/2014/07/check-rpm-package-dependencies-fedora-centos-rhel.html

譯者:nd0104 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國