与 Debian 无关、与版本无关的方式在无人值守升级中配置更新首选项

与 Debian 无关、与版本无关的方式在无人值守升级中配置更新首选项

我了解您确定是否只需要安全升级或其他升级的配置文件unattended-upgrades位于有点“动态”的位置,这些位置可能会在特定的 debian 发行版及其版本之间发生变化。

是否有一个通用的命令结构来以统一的、与 Debian 无关、与版本无关的方式控制这些?我可以学习一些命令吗?

我不确定以下是我需要的:

sudo dpkg-reconfigure --priority=low unattended-upgrades

我可能会错过优先级和允许来源之间的关联,如下所示:

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};

斯蒂芬的更新

亲爱的斯蒂芬,如果我正确理解你的答案我应该做什么,由于你描述的层次结构是编辑/etc/apt/apt.conf并添加到该文件的末尾:

Unattended-Upgrade::Allowed-Origins {
      "${distro_id}:${distro_codename}";
      "${distro_id}:${distro_codename}-security";
      "${distro_id}:${distro_codename}-updates";
      "${distro_id}:${distro_codename}-proposed";
      "${distro_id}:${distro_codename}-backports";
};

如果没有相应的命令,这将是允许升级所有类型软件的最简单的方法。

答案1

读取APT配置文件按以下顺序:

  1. 指定的文件(APT_CONFIG如果有);
  2. 文件在/etc/apt/apt.conf.d;
  3. /etc/apt/apt.conf

后面的文件会覆盖前面的文件,因此实际上放置设置的最佳位置是/etc/apt/apt.conf;这将覆盖 中文件中定义的任何设置/etc/apt/apt.conf.d。另一种应该有效的替代方法是使用名为 的文件/etc/apt/apt.conf.d/99local,但/etc/apt/apt.conf多年来对于这种目的来说,它对我来说效果很好。您可以将此设置视为允许包在 中的文件中提供默认配置/etc/apt/apt.conf.d,并/etc/apt/apt.conf包含本地系统管理员所需的配置。

对于您的情况,您应该编辑/etc/apt/apt.conf以下代码片段并将其添加到其中:

Unattended-Upgrade::Allowed-Origins {
      "${distro_id}:${distro_codename}";
      "${distro_id}:${distro_codename}-security";
      "${distro_id}:${distro_codename}-updates";
};

您不想要的-proposed(其中包含等待批准的包);如果您使用向后移植的软件包,您可能需要-backports(其中包含从当前版本的 Debian 向后移植的软件包)。-updates包含对安全性不重要的升级;因此,您可以启用它在可用时进行升级,或者禁用它在点发布时进行批量升级。

命令中指定的优先级dpkg-reconfigure与允许的来源没有任何关联,它只是确定显示哪些配置问题(并且应该是不必要的,因为这low是默认的dpkg-reconfigure)。

相关内容