有时,当我使用 更新软件时yum update
,要更新的软件包摘要会显示两个列表:“正在更新”和“正在更新依赖项”。 “更新依赖项”列表中的软件包之前已安装。为什么有这样一个单独的包列表?这对于这些软件包意味着什么?
答案1
这些是您实际尝试更新的包中的运行时依赖项(意味着您要求的软件要么直接使用它们,要么通过使用给定依赖项的辅助包间接使用它们)。
您尝试访问的软件包的较新版本有时会链接到它们所依赖的软件的特定版本,或者在设计时考虑到特定的软件版本,因此“更新依赖项”意味着为了拥有您需要的软件请求安装/更新它需要升级这些其他软件包,否则您的软件做过请求可能表现得不稳定(如果有的话)。
Windows 世界中的类似概念是需要安装特定服务包的软件产品或其补丁。换句话说,该软件有一个运行时依赖性在该服务包上。
作为一个更直接的示例,许多应用程序将 glibc 列为依赖项。如果您当前有一个版本的 glibc,但尝试安装针对更新版本编译的版本,则 yum 会自动(通过元数据)找出它需要更新 glibc然后安装您要求的软件包。
至于为什么单独列出,纯粹是为了清楚起见。如果yum
突然向您展示要安装的大量软件,您可能会说“不,不,不,我根本没有要求您这样做!”并认为出了什么问题(比如错误或其他什么)。将它们分别作为依赖项逐项列出,让您知道“不,一切都很好,我们只需要更新这些包即可获得您要求的包。”
IIRC 还有一个“安装依赖项”类别,以不同的方式列出新软件,以便您可以看到它何时通过系统更新引入,以及何时强制更新已安装的软件包。
答案2
“更新依赖项”正是这样的 - 由于根据您的请求或由于其他依赖项而更新的包的特定版本依赖项而必须更新的包。例如:软件包更新a
需要一个d
您之前没有的新软件包。可用的最新版本的 packaged
具有版本依赖性 package c
。您已c
安装版本 1,但d
需要版本 1.2。d
“安装依赖项”和c
“更新依赖项”也是如此。
答案3
- 你有
package A version 1
这需要package
B, version 1
。 - 您要升级
package A
到version 2
,但该软件包需要package B, version 2
. - 因此,yum 会自动升级
package B
并version 2
告诉您正在升级package B
,for dependencies
。