Linux RPM包依赖性 图片看不了?点击切换HTTP 返回上层
RPM 软件包(包含 SRPM 包)的依赖性主要体现在 RPM 包安装与卸载的过程中。
例如,如果采用最基础的方式(基础服务器方式)安装 Linux 系统,则 gcc 这个软件是没有安装的,需要自己手工安装。当你使用 rpm 命令安装 gcc 软件的 RPM 包,就会发生依赖性错误,错误提示信息如下所示:
除此之外,报错信息中还会明确给出各个依赖软件的版本要求:
Linux 系统中,RPM 包之间的依赖关系大致可分为以下 3 种:
以上 3 种 RPM 包的依赖关系,给出的解决方案都是手动安装,比较麻烦。在后续的章节中,我们将系统学习使用 yum 命令查询、安装、升级和卸载软件包的方法。
例如,如果采用最基础的方式(基础服务器方式)安装 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
除此之外,报错信息中还会明确给出各个依赖软件的版本要求:
- ">=":表示版本要大于或等于所显示版本;
- "<=":表示版本要小于或等于所显示版本;
- "=":表示版本要等于所显示版本;
Linux 系统中,RPM 包之间的依赖关系大致可分为以下 3 种:
- 树形依赖(A-B-C-D):要想安装软件 A,必须先安装 B,而安装 B 需要先安装 C…….解决此类型依赖的方法是从后往前安装,即先安装 D,再安装 C,然后安装 B,最后安装软件 A。
-
环形依赖(A-B-C-D-A):各个软件安装的依赖关系构成“环状”。解决此类型依赖的方法是用一条命令同时安装所有软件包,即使用
rpm -ivh 软件包A 软件包B ...
。 - 模型依赖:软件包的安装需要借助其他软件包的某些文件(比如库文件),解决模块依赖最直接的方式是通过 http://www.rpmfind.net 网站找到包含此文件的软件包,安装即可。
以上 3 种 RPM 包的依赖关系,给出的解决方案都是手动安装,比较麻烦。在后续的章节中,我们将系统学习使用 yum 命令查询、安装、升级和卸载软件包的方法。
yum,全称"Yellow dog Updater,Modified",CentOS 系统上的软件包管理器,它能够自动下载 RPM 包并安装,更重要的是,它可以自动处理软件包之间的依赖性关系,一次性安装所有依赖的软件包,无需一个个安装。