如果我执行以下操作:
apt install SomePackage --install-suggests
它会尝试不仅安装指定的建议软件包SomePackage
,还会尝试安装任何软件包所依赖的建议软件包SomePackage
(如果所述依赖项尚未安装)。
有没有办法告诉 apt 仅安装那些我明确列出的软件包,而不安装那些依赖树中靠后的软件包?
答案1
依赖关系有三种:
依靠。这些必须被纳入,并且有充分的理由。你可以使用 apt 标志来防止这些,我不会在这里讨论它,因为它很危险并且可能会破坏你试图安装的任何东西。
建议。这些应该被拉进来以获得完整的功能集。在 Ubuntu 中,这是已启用默认情况下。您可以使用 apt 的标志将其关闭
--no-install-recommends
,或者将 apt 配置项APT::Install-Recommends
从“1”更改为“0”。大多数用户永远不需要触碰此设置。您可以使用apt-config dump | grep Install-Recommends
建议。在有限的情况下,可以引入这些来补充功能。在 Ubuntu 中,这是已禁用默认情况下。您可以使用 apt 的标志将其打开
--install-suggests
,或者将 apt 配置项APT::Install-Suggests
从“0”更改为“1”。大多数用户永远不需要触碰此设置。您可以使用apt-config dump | grep Install-Suggests
Apt 将始终遵循依赖关系树并使用相同的设置。无法在树的中途更改设置。
如果您想要一些(但不是全部)建议的软件包,则必须列出您想要的软件包。这可能会使您的未来生活变得复杂:手动指定的软件包不符合自动删除的条件,因此您也需要手动清理。做好笔记。
答案2
此功能仍然破碎的(行为不符合用户希望的或手册描述的),除了 Arch 之外,我在每个发行版中都遇到了这个问题。
在前端,我只能在 Manjaro 的 Pamac 中自动获得一级建议。毫不费力。此外,我可以非常轻松地浏览建议或依赖项。在 Discover、Muon、Yast 等中,我几乎无法以文本格式获得建议列表,也无法复制。它们都没有显示安装前已安装的文件。这真是令人难以置信。在 Synaptic 中,您可以右键单击以选择建议的软件包,但只能逐个选择。
现在在 CLI 中,apt 确实建议 GB 的不需要的软件包。要修复:
apt install SomePackage $(apt-cache 依赖于 SomePackage|grep 建议:|grep -v "<"|cut -d' ' -f4)