RPM包的依赖性(查看当前rpm包所需依赖包版本)

1.依赖包简介

RPM 软件包(包含 SRPM 包)的依赖性主要体现在 RPM 包安装与卸载的过程中。

例如,如果采用最基础的方式(基础服务器方式)安装Linux 系统,则 gcc 这个软件是没有安装的,需要自己手工安装。当你使用 rpm 命令安装 gcc 软件的 RPM 包,就会发生依赖性错误,错误提示信息如下所示:

[root@localhost ~]# rpm -ivh /mnt/cdrom/Packages/ gcc-4.4.6-4.el6.i686.rpm
error: Failed dependencies: <―依赖性错误
cloog-ppi >= 0.15 is needed by gcc-4.4.6-4.el6.i686
cpp = 4.4.6-4.el6 is needed by gcc-4.4.6-4.el6.i686
glibc-devel >= 2.2.90-12 is needed by gcc-4.4.6-4.el6.i686

报错信息提示我们,如果要安装 gcc,需要先安装 cloog-ppl、cpp 和 glibc-devel 三个软件,这体现的就是 RPM 包的依赖性。

除此之外,报错信息中还会明确给出各个依赖软件的版本要求:

">=":表示版本要大于或等于所显示版本;
"<=":表示版本要小于或等于所显示版本;
"=":表示版本要等于所显示版本;

Linux 系统中,RPM 包之间的依赖关系大致可分为以下 3 种:

树形依赖(A-B-C-D):要想安装软件 A,必须先安装 B,而安装 B 需要先安装 C…….解决此类型依赖的方法是从后往前安装,即先安装 D,再安装 C,然后安装 B,最后安装软件 A。
环形依赖(A-B-C-D-A):各个软件安装的依赖关系构成“环状”。解决此类型依赖的方法是用一条命令同时安装所有软件包,即使用 rpm -ivh 软件包A 软件包B ...

模型依赖:软件包的安装需要借助其他软件包的某些文件(比如库文件)
以上 3 种 RPM 包的依赖关系,给出的解决方案都是手动安装,比较麻烦。在后续的章节中,我们将系统学习使用 yum 命令查询、安装、升级和卸载软件包的方法。

yum,全称"Yellow dog Updater,Modified",CentOS 系统上的软件包管理器,它能够自动下载 RPM 包并安装,更重要的是,它可以自动处理软件包之间的依赖性关系,一次性安装所有依赖的软件包,无需一个个安装。

2.查看RPM所需依赖包及依赖关系

  1. 查询软件包依赖哪些软件
rpm -qR centos-release    安装  R参数的意思就是requires就是依赖哪些软件包
rpm -qpR centos-release 未安装
或
yum deplist centos-release
  1. 查询软件包被哪个软件包依赖
rpm -e --test centos-release  # 通过--test进行测试删除,查看是否有依赖关系,如果有会阻止删除
错误:依赖检测失败: rpcbind 被 (已安裝) quota-1:4.01-17.el7.x86_64 需要

参考文章:
https://zhuanlan.zhihu.com/p/514515765
https://blog.csdn.net/Michaelwubo/article/details/107760589

posted @ 2022-07-11 17:44  Later^^  阅读(5215)  评论(0编辑  收藏  举报