我们都知道,在基于RedHat的Linux系统中,一个RPM包需要安装它所依赖的其他包才能正常工作。对于终端用户来说,RPM的安装、更新、删除中的依赖已经通过工具(如yum或DNF等)透明化了。但如果你是系统管理员或RPM包管理员,则需要熟悉RPM包的依赖关系,以便及时更新和删除合适的包,保证系统的正常运行。在本教程中,我将教您如何检查RPM包的依赖关系。不管这个包是否已经安装在操作系统中,我们都有一些方法来检查它们的依赖关系。方法一使用RPM命令列出目标包所依赖的所有包,如下:$rpm-qR注意此方法只适用于已安装的包。如果您需要检查已卸载包的依赖项,您首先需要将包下载到本地(无需安装)。要下载RPM包而不安装它,您可以使用名为“yumdownloader”的工具。让我们先安装yumdownloader:$sudoyuminstallyum-utils现在让我们检查一个没有安装的RPM包的依赖关系(在这个例子中使用tcpdump)。首先,我们使用yumdownloader下载tcpdump的RPM包$yumdownloader--destdir=.tcpdump然后使用“-qpR”参数显示包的依赖关系。#rpm-qpRtcpdump-4.4.0-2.fc19.i686.rpm方法二可以使用repoquery工具列出包的依赖关系,与包是否安装无关。这个工具包含在yum-utils中。$sudoyuminstallyum-utils显示目标包依赖的包:$repoquery--requires--resolve为了repoquery正常工作,需要保持网络畅通,因为repoquery需要可在yum仓库信息中搜索。方法三第三种方法是使用rpmreaper工具。该工具最初用于清理系统中无用的包及其依赖的包。rpmreaper有一个非常直观的ncurses界面来显示已安装包及其依赖项的树状图。要安装rpmrepater,在CentOS中,你需要先设置EPEL库$sudoyuminstallrpmreaper运行rpmreaper来查看RPM包的依赖关系:$rpmreaperrpmrepater会向用户显示已安装包的列表,你可以使用/向下箭头滚动屏幕。可以在指定包上使用“r”键显示其依赖关系,循环按指定包上的“r”键显示其余信息。“L”标志表示包是“孤叶”,意味着没有包依赖它。“o”标志意味着这个包是整个依赖链的中间部分。按“b”键将显示依赖于该包的其他包。方法4另一种方法是使用rpmdep工具。rpmdep是一个命令行工具,可以显示已安装包的完整包依赖关系图。该工具分析RPM包的依赖关系,从完整排序的拓扑图中提取部分包的信息,并以列表的形式展示给用户。该工具的输出可以直接在Dotty(可视化展示工具)中使用。在Fedora中安装rpmdep和dotty:$sudoyuminstallrpmmorphangraphviz在CentOs中安装:$wgethttp://downloads.sourceforge.net/project/rpmorphan/rpmorphan/1.14/rpmorphan-1.14-1.noarch.rpm$sudorpm-ivhrpmmorphan-1.14-1.noarch.rpm$sudoyuminstallgraphviz生成包依赖关系的拓扑图(例如gzip):$rpmdep.pl-dotgzip.dotgzip$dot-Tpng-ooutput.pnggzip。至此,在dot教程中,我们已经使用了几种方法来检查包的依赖关系。如果您想知道如何检查Debian托管系统上的.deb包依赖性,请阅读此单独的文档。via:http://xmodulo.com/2014/07/check-rpm-package-dependencies-fedora-centos-rhel.html译者:nd0104校对:wxy翻译链接:http://linux.cn/article-3621-1.html