unattended-upgrades服务默认安装但未启用,必须手动激活;需确认包已安装、服务状态为active(running)、20auto-upgrades和50unattended-upgrades文件存在且配置正确,缺一不可。

unattended-upgrades 服务是否真正启用
很多用户改完配置却没效果,根本原因是 unattended-upgrades 服务压根没在运行。它默认安装但不自动启用,必须手动激活。
检查三件事:
-
dpkg -l | grep unattended-upgrades—— 确认包已安装(无输出需先sudo apt install unattended-upgrades) -
sudo systemctl status unattended-upgrades—— 必须显示active (running),若为inactive (dead),运行sudo systemctl enable --now unattended-upgrades -
ls /etc/apt/apt.conf.d/{20auto-upgrades,50unattended-upgrades}—— 两个文件都必须存在且未被重命名或删除
20auto-upgrades 控制执行节奏,但不能单独生效
这个文件只管“做不做”,不管“做什么”。常见错误是只把 apt::periodic::unattended-upgrade "1" 设为 1,却忽略它依赖 apt::periodic::update-package-lists "1"——后者不触发,前者就永远查不到新包。
标准写法(/etc/apt/apt.conf.d/20auto-upgrades):
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1"; APT::Periodic::AutocleanInterval "7";
注意:"1" 表示每日执行,"0" 才是禁用。别写成 1(无引号),语法错误会导致整段配置被忽略。
50unattended-upgrades 决定哪些包能装,安全更新默认不全开
Ubuntu 的安全补丁分散在多个源:主安全源 -security 和常规更新源 -updates 都可能发布关键修复(比如内核、cloud-init)。但默认配置只放行 -security 的 main 和 restricted 组件,-updates 是注释掉的。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
打开 /etc/apt/apt.conf.d/50unattended-upgrades,确认这几行未被注释:
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
改完必须立刻执行 sudo apt update,否则 unattended-upgrade 仍读不到 -updates 中的包。测试是否生效:sudo unattended-upgrade --dry-run -d,看输出里有没有列出待安装包。
自动重启和内核更新是两个独立开关
即使所有配置都对,系统也不会自动重启——除非你显式开启重启策略,且内核本身被允许升级。
重启相关设置在 50unattended-upgrades 中:
Unattended-Upgrade::Automatic-Reboot "true";Unattended-Upgrade::Automatic-Reboot-Time "02:00";
但内核包(如 linux-image-*)默认被黑名单保护。要让它参与自动更新,要么删掉配置里的 linux-image-.* 黑名单项,要么用 sudo apt-mark unhold 解除之前的手动锁定。否则,即使重启开了,内核补丁也永远卡在“已下载未安装”状态。
最易被忽略的一点:自动更新不是“设完就完”,它高度依赖源列表新鲜度和组件白名单的精确匹配。少一个引号、多一行注释、漏一次 apt update,整个流程就静默失效。

















