当指定虚拟包作为依赖项时,apt/dpkg 如何选择安装哪个真实包?

当指定虚拟包作为依赖项时,apt/dpkg 如何选择安装哪个真实包?

例如,如果包指定

Depends: www-browser

apt/dpkg 如何决定安装哪个真正的软件包?

答案1

根据这个答案在 Ask Ubuntu 上,apt 将首先尝试安装作为选项列出的任何非虚拟软件包:

现在,根据消息来源,apt 首先尝试满足之前的依赖关系尝试与虚拟包(即,如果depends是firefox | www-browser,则检查是否安装了任何软件包,如果都没有安装,则尝试安装firefox)。

如果没有,它将简单地迭代提供虚拟包的列表,并安装第一个可以的包:

如果非虚拟包不可用,它似乎只是迭代所有提供虚拟包的包,如果没有其他依赖关系被破坏。这种行为的其他评论证据是这导致GrpIterator::FindPreferredPkg 函数

相关内容