apt-get 如何从替代依赖项列表中进行选择?

mra*_*ims 5 apt dependencies deb

我知道在 deb 控制文件的 Depends: 部分中,包可以指定由|符号分隔的替代依赖项以满足单个依赖项。

我的问题是,apt-get当有替代方案时,如何决定安装哪一个?

有没有办法使用类似于的东西手动更改此选择apt_preferences

例如,如果一个包依赖于 java 并且在我们拥有的 Depends 部分,如果系统没有安装任何一个包openjdk-6-jre | sun-java6-jre,我如何强制 apt-getopenjdk-6-jre安装?

enz*_*tib 2

Debian 政策手册中,第 7 章 - 声明包之间的关系,您可以阅读

在包的 Depends、Recommends、Suggests、Pre-Depends、Build-Depends 和 Build-Depends-Indep 控制字段(声明对其他包的依赖关系)中,列出的包名称还可能包括替代包名称的列表,以垂直分隔条(管)符号|。在这种情况下,如果安装了任何一个替代软件包,则认为该部分依赖关系已得到满足。

我在整个文档中找不到有关替代方案列表的任何其他有用信息,因此我应该得出结论,如果列表中没有安装任何软件包,则将选择列表中的第一个软件包。但请注意,这只是我的解释。