我正在尝试了解 Debian 软件包之间的“建议”和“推荐”关系。我知道它们为用户提供了更多关于安装什么和不安装什么的选择。
但我只知道manual
和auto
标记来指示安装软件包的原因。这不包含足够的信息来跟踪用户关于是否安装建议和推荐的软件包的决定。我在文档中看不到 apt 所采取的行为(包 X 推荐 Y 并建议 Z):
apt-get dist-upgrade
将 X 升级到不再推荐 Y 或建议 Z 的新版本。
apt-get dist-upgrade
将 X 升级到更新版本,该版本会推荐和建议新软件包(尚未安装)。
apt-get autoremove
删除包 X。
答案1
“推荐”和“建议”关系主要对软件包安装(有时是删除)产生影响,但对升级没有影响。
在安装时,根据其配置(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
,并且会告诉您新推荐的软件包(但不会自动选择它们进行安装)。
以下问题提供了补充信息: