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

我们都知道,在基于红帽的Linux系统中,一个RPM包,需要把先将它依赖的其他包安装好才能正常的工作。对于终端用户,RPM的安装、更新、删除中存在的依赖关系已经被工具透明化了(如 yum或 DNF等)。但如果你是系统管理员或者RPM包的管理员,你需要谙熟RPM包的依赖关系,以便及时更新、删除适当的包来保证系统的正常运行。

在本教程中,我将教大家如何检查RPM包的依赖关系。无论这个包是否已经安装进操作系统中,我们都有一些办法来检查它们的依赖性。

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

方法一

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

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

注意,这种方法只适用于已安装的包。如果你需要检查一个未安装包的依赖关系,你首先需要把这个包先下载到本地来(不需要安装)。

要下载一个 RPM 包而不安装,可以使用叫做’yumdownloader’的工具,下面我们先安装yumdownloader:

  1. $ sudo yum install yumutils

现在我们来检查一个未安装的RPM包的依赖关系(本例使用 tcpdump)。首先,我们使用yumdownloader把tcpdump的RPM包下载下来

  1. $ yumdownloader destdir=. tcpdump

然后再使用 “-qpR”参数显示该包的依赖关系。

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

方法二

你可以使用repoquery工具来罗列包的依赖关系,它与包是否安装无关,这个工具包含在yum-utils中。

  1. $ sudo yum install yumutils

显示目标包所依赖的包:

  1. $ repoquery requires resolve <packagename>

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

为让repoquery正常的工作,需要保持网络的畅通,应为repoquery需要在Yum库中查找信息。

方法三

第三个方法是使用rpmreaper工具。这个工具本来是用作清理系统中无用以及它们所依赖的包,rpmreaper有很直观的ncurses界面来展示已安装的包和它们依赖关系的树形图。

安装rpmrepater,在CentOS中,你需要先设置好EPEL库

  1. $ sudo yum install rpmreaper

只需运行rpmreaper就可以看到RPM包的依赖关系:

  1. $ rpmreaper

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

rpmrepater会向用户显示已安装包的列表,你可以使用上/下箭头来滚动屏幕。

你可以在指定包上使用”r”键来显示其依赖关系,循环在指定包上按下”r”键可以展示出余下的信息。

“L”标志的意思是说这个包是一片“孤叶”,意思说说没有任何包依赖它。

“o”标志是说这个包是整个依赖链的中间部分。

按下”b”键会显示其他依赖于该包的其他包。

方法四

还有一个办法是使用rpmdep工具,rpmdep是一个命令行工具,可以显示已安装包的完整包依赖关系图。该工具会分析RPM包的依赖性,从完整的排完序的拓扑图中摘取部分包的信息,形成列表展示给用户。该工具的输出结果可以直接使用到Dotty(可视化展示工具)中去。

在Fedora中安装rpmdep和dotty:

  1. $ 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):

  1. $ rpmdep.pl dot gzip.dot gzip
  2. $ dot Tpng o output.png gzip.dot

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

教程到这个地方,我们用到了几种办法来检查包的依赖关系。如果您想知道如何在居于Debian的系统中检查.deb的包依赖关系,请阅读另外一篇文档

原创文章,作者:追马,如若转载,请注明出处:http://www.178linux.com/407

(0)
追马追马
上一篇 2015-02-10 14:50
下一篇 2015-02-11 10:16

相关推荐

  • Linux基础知识(三)-用户管理组管理,正则grep,文本处理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中 5、取出当前主机的IP…

    Linux干货 2016-10-09
  • 压缩和解压缩

    今天我们所讲一些压缩以及解压缩的内容,可以方便我们去传输一些数据较大的文件,以及可以降低我们的内存使用率, 节省空间。我们常用的工具对单个文件进行压缩有4种,对于多个文件进行打包压缩有2种。 1、compress(单个文件压缩)     压缩后的文件后缀名都是.Z结尾     compress fi…

    2017-08-12
  • linux软链接与硬链接的区别

    硬链接:相于当给文件增加了一个新名 在添加链接时会增加链接数,其inode结点数不会增加 支持绝对路径与相对路径 硬链接不能对目录来创建 不能跨分区来创建链接 硬链接链接到文件被删除时,依旧可以通过链接文件来访问被删文件的数据 软链接:可以支持对目录来创建链接 (注,当你用rm -rf 删除目录的时候,目录不会删除,但目录中的内容会被删除,并且会删除源文件)…

    Linux干货 2016-10-02
  • 自定义命令别名及引用结果

    自定义命令别名及引用结果 alias alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。 语法 alias(选项)(参数) 选项 -p:打印已经设置的命令别名。 参数 命令别名设置:定义命令别名,格式为“命令别名=‘实际命令’” 实例 显示已设置的别名 [root@localhost ~]# alias alias cp=’c…

    Linux干货 2018-03-11
  • 第一周博客作业

       本文介紹計算机的组成及其功能 、Linux各版本的联系与区别、Linux的哲学思想、Linux系统上命令的使用格式及介绍部分命令、如何在Linux系统上获取帮助信息以及Linux发行版的基础目录名称以及规定。 一、计算机的组成及其功能 1)什么是计算机? 想了解计算机的组成,首先得了解计算机的含义。计算机其实是:接收用户输入指令与数…

    Linux干货 2016-12-04
  • 运维挖坑埋坑之旅—-413 Request Entity Too Large

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1575160        好久没写博文了,天天忙的喘不过来气。最近是该总结总结前段时间的工作了,顺便缓解下这两天的霉…

    Linux干货 2016-08-15