ArchLinux 如何处理依赖冲突?

Gar*_*ang 6 linux package-management software-conflict arch-linux

在传统的发布模型中,一个发布中的所有包都使用相同版本的编译器针对相同版本的库进行编译,发布团队会仔细挑选可以很好地协同工作的软件版本,以避免冲突。

在像 Gentoo 这样的滚动发布源发行版中,您根据系统中安装的库版本自己构建每个包,如果两个包依赖于同一库的不同版本,您可以将这些不同版本安装到不同的插槽中。所以你有一个合理的机制来避免冲突。

最近我发现了 ArchLinux,这是另一个具有滚动发布模型的发行版,它基于二进制包。它似乎也不支持插槽。

现在我很困惑。使用 ArchLinux,如果我尝试安装依赖于与我安装的库版本不同的库的软件包,会发生什么?我是否被迫升级图书馆?但是如果两个包依赖于不同版本的库会发生什么?

我在 pacman 上查看了各种 ArchLinux Wiki 页面,但没有找到任何幕后解释。

use*_*686 3

在 Arch 中,具有显式版本的依赖项很少见;大多数软件包只是期望安装最新版本的依赖项。(用户不应执行选择性升级,而是将所有已安装的软件包保留为最新版本。)

在极少数情况下,需要两个具有不同 ABI 的版本,旧版本可以作为不同名称的包提供 - 例如,libpng(最新)、libpng14(1.4)、libpng12(1.2)。