我编辑了该/etc/apt/apt.conf.d/50unattended-upgrades
文件(在 Ubuntu 22.04.3 上)并故意引入了一个错误:
Unattended-Upgrade::Automatic-Reboot-WithUsers "Falsed"; // instead of "false"
当我重新启动服务时,它显示为正在运行:
systemctl restart unattended-upgrades.service
systemctl status unattended-upgrades.service # shows "Active: active (running)"
如果我运行unattended-upgrades --dry-run
它就会退出而不会出现错误。
我如何确信配置文件是正确的并且将被使用?对于 nginx,有nginx -t
命令。有类似的东西吗unattended-upgrades
?
答案1
APT 配置格式本质上是一种分层树值存储,并且对键和值都很宽松。就密钥而言,它必须是这样的——没有允许的密钥的中央注册表。就价值观而言,布尔值的当前实现,字符串“no”、“false”、“without”、“off”和“disable”被解释为 false,字符串“yes”、“true”、“with”、“on”和“enable”被解释为 true。当配置解析器被要求提供布尔值时发现的任何其他值都会返回默认值(不是错误)。对于你问题中提到的背景,该默认值为 true。
由于上述原因,只要 APT 配置中涉及的所有配置文件在语法上都是有效的,与您的示例相同的错误将不会被检测到。
它是可以看到当前配置文件是如何解释的:
apt-config dump
读取所有配置文件并转储其中找到的所有键以及关联的值。