apt install 是否推荐安装子包?

apt install 是否推荐安装子包?

例如,包hollywood有依赖项byobu和推荐包atop,而atop有rec。cronbyobu,分别。 —— less。和cron是否会与depends和recommendless一起安装?hollywood

hollywood
|- [dep] byobu
|  |- [rec] less
|
|- [rec] atop
|  |- [rec] cron
$ sudo apt install -o APT::Install-Recommends="true" hollywood
$ cat /etc/apt/apt.conf
(...)
APT::Install-Recommends "false";

答案1

一般规则是,如果Install-Recommends启用,则新安装的软件包的建议本身会被考虑进行安装,并且这会传递性地应用 - 由于建议而选择的新安装的软件包将有其自己的建议被考虑进行安装。

然而,其他考虑因素可能会阻止安装建议,并且因为这只是建议,所以这不会被视为致命错误。在hollywood示例中,run-one将考虑安装,但在 Debian 上不会安装,因为该软件包不可用(它是 Ubuntu 软件包)。同样,如果推荐的软件包与已安装的软件包冲突,则不会安装它。此类包的任何进一步的依赖项或建议也不会被考虑。

所有这些都适用于所有apt操作:install显然,而且upgrade.如果软件包升级引入了尚未安装的新依赖项,则将安装该软件包,并应用上述对新安装的软件包的处理。另一方面,引入新建议的软件包升级不会导致额外的安装,因为这些建议不是在新定义的 -已安装包。

答案2

在我的系统上我已经有了less,所以让我们考虑run-one一下。

hollywood
|- [dep] byobu
|  |- [rec] run-one
|
|- [rec] atop
|  |- [rec] cron

然后当我尝试安装时(从文本中删除了无趣的包):

$ sudo apt install -o APT::Install-Recommends="true" hollywood
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  atop byobu cron
Recommended packages:
  run-one
The following NEW packages will be installed:
  atop byobu cron hollywood

看起来apt执行了以下操作:

  • byobu(dep) 已安装,但其推荐包run-one仍仅推荐。
  • atop(rec) 已安装,并且其推荐的软件包:cron | cron-daemon已安装。

概括来说,我们在使用此选项时观察到的是:

  • 建议安装包
  • 包的依赖项的建议是不是安装。
  • 推荐安装包的推荐。

令我惊讶的是,会安装推荐的推荐。我确认这cron不是已安装的其他软件包之一的依赖项。

相关内容