我了解您确定是否只需要安全升级或其他升级的配置文件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配置文件按以下顺序:
- 指定的文件(
APT_CONFIG
如果有); - 文件在
/etc/apt/apt.conf.d
; /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
)。