7.9 RPM包的依赖性及其解决方案

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

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 种:

  1. 树形依赖(A-B-C-D):要想安装软件 A,必须先安装 B,而安装 B 需要先安装 C…….解决此类型依赖的方法是从后往前安装,即先安装 D,再安装 C,然后安装 B,最后安装软件 A。
  2. 环形依赖(A-B-C-D-A):各个软件安装的依赖关系构成“环状”。解决此类型依赖的方法是用一条命令同时安装所有软件包,即使用 rpm -ivh 软件包A 软件包B ...
  3. 模型依赖:软件包的安装需要借助其他软件包的某些文件(比如库文件),解决模块依赖最直接的方式是通过 网站找到包含此文件的软件包,安装即可。

以上 3 种 RPM 包的依赖关系,给出的解决方案都是手动安装,比较麻烦。在后续的章节中,我们将系统学习使用 yum 命令查询、安装、升级和卸载软件包的方法。

yum,全称"Yellow dog Updater,Modified",CentOS 系统上的软件包管理器,它能够自动下载 RPM 包并安装,更重要的是,它可以自动处理软件包之间的依赖性关系,一次性安装所有依赖的软件包,无需一个个安装。
目录
相关文章
|
4月前
|
Linux
RPM 管理软件包的依赖关系
RPM 管理软件包的依赖关系
427 1
|
6月前
|
数据库 容器
RPM属性依赖的解决方法: YUM线上升级
【5月更文挑战第14天】RPM属性依赖的解决方法: YUM线上升级。
58 1
|
6月前
|
弹性计算 运维 Shell
自动化软件包安装与管理
【4月更文挑战第30天】
34 0
|
11月前
|
测试技术 Linux
收集yum install安装的软件的全量依赖 rpm 包
收集yum install安装的软件的全量依赖 rpm 包
248 0
解决办法:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决办法:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
1434 0
|
Linux API
DNF管理软件包
DNF管理软件包
126 0
|
Ubuntu 安全 开发工具
ubuntu安装软件时:有未能满足的依赖关系
ubuntu安装软件时:有未能满足的依赖关系
1871 0
|
Linux
LINUX安装依赖库冲突的最终版本:下列软件包有未满足的依赖关系/但是它将不会被安装/无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
LINUX安装依赖库冲突的最终版本:下列软件包有未满足的依赖关系/但是它将不会被安装/无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
943 0
下列软件包有未满足的依赖关系,依赖: libxxx(= 2.2.10) 但是 2.3.0正要被安装
下列软件包有未满足的依赖关系,依赖: libxxx(= 2.2.10) 但是 2.3.0正要被安装
351 0
解决办法:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
解决办法:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
1257 0