我刚刚遇到了一个让我产生疑问的答案如何无人值守升级系统有效。我的电脑上似乎至少有两个系统:
unattended-upgrades
与/etc/apt/apt.conf.d/50unattended-upgrades
、调用自/etc/cron.daily/apt
和GUI 更新管理器的设置(
software-properties-kde
等)。我不知道第二个系统如何安排或运行,但我观察到更改 GUI 中的设置确实不是更新 中的设置/etc/apt/apt.conf.d/50unattended-upgrades
。
这让我相信这实际上是两个相互竞争的系统。如果正确的话,它们是否都按照自己的时间表运行,还是其中一个会阻碍另一个?GUI 软件属性中的无人值守更新设置是如何操作的?
答案1
CRON
摘录自
/etc/cron.daily/apt
:# This file understands the following apt configuration variables: # Values here are the default. ... # APT::Periodic::Unattended-Upgrade "0"; # - Run the "unattended-upgrade" security upgrade script # every n-days (0=disabled) # Requires the package "unattended-upgrades" and will write # a log in /var/log/unattended-upgrades ... UnattendedUpgradeInterval=0 eval $(apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade) ... # auto upgrade all upgradeable packages UPGRADE_STAMP=/var/lib/apt/periodic/upgrade-stamp if which unattended-upgrade >/dev/null && check_stamp $UPGRADE_STAMP $UnattendedUpgradeInterval; then if unattended-upgrade $XUUPOPT; then update_stamp $UPGRADE_STAMP debug_echo "unattended-upgrade (success)" else debug_echo "unattended-upgrade (error)" fi else debug_echo "unattended-upgrade (not run)" fi
包装描述
unattended-upgrades
:该软件包可以自动且无人值守地下载并安装安全升级,注意仅从配置的 APT 源安装软件包,并检查有关配置文件更改的 dpkg 提示。
该脚本是 APT::Periodic::Unattended-Upgrade 选项的后端。
APT cron 作业运行
unattended-upgrade
,这是下载并安装升级的程序,但前提是 APT 变量APT::Periodic::Unattended-Upgrade
不是0
。软件特性
选项设置自动检查更新和有安全更新时保存在文件中
/etc/apt/apt.conf.d/10periodic
。自动检查更新映射到 APT 变量
APT::Periodic::Update-Package-Lists
。有安全更新时映射到变量
APT::Periodic::Download-Upgradeable-Packages
和APT::Periodic::Unattended-Upgrade
。选择自动下载并安装(安全更新)将设置
APT::Periodic::Unattended-Upgrade
为 1。这将告诉 APT cron 作业运行unattended-upgrade
,该作业执行所有软件包安装作业。软件属性窗口仅控制这三个 APT 定期任务的时间表:检查更新、下载可升级包和运行。它实际上并不运行任何东西,所有艰苦的工作都由和
unattended-upgrade
完成。/etc/cron.daily/apt
unattended-upgrade
unattended-upgrade
实际执行升级任务的程序。该文件
/etc/apt/apt.conf.d/50unattended-upgrades
保存影响 行为的设置unattended-upgrade
。它不会被任何其他程序读取。如果您想自定义升级的安装方式,您必须手动编辑此文件。
仅当我们通过软件属性窗口启用它(或手动编辑)时,才会有一个无人值守升级系统 ( unattended-upgrade
) 由 APT cron 作业 () 调用。/etc/cron.daily/apt
/etc/apt/apt.conf.d/10periodic