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

简介:

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

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

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

方法一

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

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

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


  
  
  1. $ sudo yum install yum-utils

现在我们来检查一个未安装的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 yum-utils

显示目标包所依赖的包:


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

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

方法三

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

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


  
  
  1. $ sudo yum install rpmreaper

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


  
  
  1. $ rpmreaper

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

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

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

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

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

方法四

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

在Fedora中安装rpmdep和dotty:


  
  
  1. $ sudo yum install rpmorphan graphviz

在CentOs中安装: $ wgethttp://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

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

原文发布时间:2014-08-16

本文来自云栖合作伙伴“linux中国”

目录
相关文章
|
7月前
|
Ubuntu Linux
Centos 7、Debian、Ubuntu中tree指令的检查与下载
Centos 7、Debian、Ubuntu中tree指令的检查与下载
|
Java Linux 网络安全
【Linux环境】Centos 7启动jar包的详细步骤
【Linux环境】Centos 7启动jar包的详细步骤
432 0
|
7月前
|
Oracle Java 关系型数据库
CentOS7 下rpm安装jdk1.8
CentOS7 下rpm安装jdk1.8
171 0
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
116 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
95 2
|
2月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
2175 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
2月前
|
缓存 Linux 编译器
【C++】CentOS环境搭建-安装log4cplus日志组件包及报错解决方案
通过上述步骤,您应该能够在CentOS环境中成功安装并使用log4cplus日志组件。面对任何安装或使用过程中出现的问题,仔细检查错误信息,对照提供的解决方案进行调整,通常都能找到合适的解决之道。log4cplus的强大功能将为您的项目提供灵活、高效的日志管理方案,助力软件开发与维护。
73 0
|
7月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
330 1
|
4月前
|
应用服务中间件 Linux nginx
在CentOS上使用源码包安装Nginx、以及手动启动Nginx的步骤过程
这篇文章介绍了在CentOS系统上使用Nginx源码包进行安装和配置的详细步骤,包括源码包的获取、解压、配置、编译、安装、启动验证以及注意事项。
439 0
在CentOS上使用源码包安装Nginx、以及手动启动Nginx的步骤过程
|
Linux
Centos查看已经安装的软件或者包
Centos查看已经安装的软件或者包
331 0