如何在 Debian 服务器上配置 systemd“离线更新”?
带有 Gnome 的 Debian 9 似乎已经配置了 systemd 的“离线更新”功能。我可以在服务器系统上安装一个软件包以获得相同的行为吗?
答案1
在 Debian 服务器上,我们倾向于建议在系统运行时进行升级并在必要时重新启动,而不是在重新启动后依赖最小环境来安装软件包升级。
许多软件包都支持这一点:
apt
本身包括 systemd 计时器(和一个 cron 作业,因此无需 systemd 也能工作),实现定期索引刷新(APT::Periodic::Update-Package-Lists
默认设置为 0,因此被禁用)和自动包下载(APT::Periodic::Download-Upgradeable-Packages
默认也设置为 0);unattended-upgrades
实现可安全升级的软件包的自动升级(通常是安全更新);它挂钩apt
(APT::Periodic::Unattended-Upgrade
,默认情况下也设置为 0) 提供的计时器;needrestart
检测需要重新启动的守护进程,并使用适当的 systemd 上下文重新启动它们(如果 systemd 正在使用);它还支持在内核升级后必要时重新启动。
两种方法各有利弊。重新启动所有升级可确保过时的进程永远不可用,并最大限度地降低软件包数据库损坏的风险(尤其是在 RPM 领域);显然,它会减少正常运行时间,但在负载平衡、高可用性的世界中服务而不是服务器,这不一定很重要。升级实时系统可以最大限度地降低服务器无法访问的风险,并保持系统服务可用(尽管apt
在这方面也可以改进,因为守护进程可以在升级过程中停止很长一段时间——但这是另一个问题);然而,一旦发现安全漏洞,它确实会让您在更长的时间内处于脆弱状态。
这联机帮助页您链接到了想要实施面向服务器的升级系统的任何人的详细要求;在 Debian 上这样做相对简单,但据我所知,还没有打包的实现。您可以在上述框架之上进行构建,使用现在完成的自动下载,并unattended-upgrades
在最小升级环境中运行......