我试图弄清楚 Debian 软件包之间的“建议”和“推荐”关系。我知道他们为用户提供了更多关于安装什么和不安装什么的选择。
但我只知道manual
和auto
标记来指示安装包的原因。这不包含足够的信息来跟踪用户决定是否安装建议和推荐的软件包。我在文档中看不到 apt 的行为(包 X 建议 Y 并建议 Z):
apt-get dist-upgrade
将 X 升级到不再推荐 Y 或 Z 的更新版本。
apt-get dist-upgrade
将 X 升级到更新的版本,该版本推荐并建议新的软件包(尚未安装)。
apt-get autoremove
删除包 X。
“Recommends” 和 “Suggests” 关系主要影响软件包安装,有时甚至是删除,而不是升级。
在安装时,根据其配置 (
APT::Install-Recommends
和APT::Install-Suggests
),apt
将自动安装任何推荐和/或建议的软件包以及带有推荐或建议的软件包。默认设置为建议启用此功能,而不是建议。以这种方式安装的软件包被标记为自动安装。在删除时,删除一个包将导致
apt
删除依赖于已删除包的包,但它不会处理建议或建议。apt autoremove
然后将查找标记为自动安装且不再具有任何依赖包的任何包(包括建议和/或建议,取决于和设置)Apt::AutoRemove::RecommendsImportant
Apt::AutoRemove::SuggestsImportant
;任何此类软件包都将被删除。默认设置保留推荐和建议的软件包(与安装默认值相比是不对称的,但可以避免意外)。在升级时,仅考虑已安装的软件包。
apt upgrade
尝试将所有已安装的软件包升级到它们的候选版本,而不删除任何软件包。apt full-upgrade
(或dist-upgrade
)如果允许升级其他软件包,则考虑删除软件包,但它不会仅仅因为升级后不再推荐该软件包而删除该软件包。升级包新推荐或建议的包不会自动安装。不再推荐或建议的包将成为下一个的候选autoremove
。aptitude
行为略有不同;它将执行与apt autoremove
删除软件包时相同的操作,它会告诉您新推荐的软件包(但不会自动选择它们进行安装)。以下问题提供了补充信息: