如何在Ubuntu 18.04上设置自动更新
定期更新Ubuntu系统是整体系统安全性的最重要方面之一。
如果不使用最新的安全补丁更新操作系统的程序包,则可能使计算机容易受到攻击。
在管理多台Ubuntu计算机时,手动更新系统软件包可能很耗时。
即使我们管理一个系统,有时我们也可能忽略了一个重要的更新。
这是自动无人值守更新很方便的地方。
在本教程中,我们将逐步介绍如何在Ubuntu 18.04上配置自动无人值守更新。
相同的步骤适用于任何基于Ubuntu的发行版,包括Kubuntu,Linux Mint和Elementary OS。
准备工作
在继续本教程之前,请确保我们以具有sudo特权的用户身份登录。
安装“无人值守升级”软件包
“无人值守升级”软件包包括可以自动下载和安装更新的软件包的工具。
可能是该软件包已经安装在Ubuntu系统上,如果没有,我们可以通过在终端中输入以下命令来安装它:
sudo apt install unattended-upgrades
安装完成后,无人参与升级服务将自动启动。
我们可以通过键入以下内容进行验证:
systemctl status unattended-upgrades
● unattended-upgrades.service - Unattended Upgrades Shutdown Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enab Active: active (running) since Sun 2019-03-10 07:52:08 UTC; 2min 35s Docs: man:unattended-upgrade(8) CGroup: /system.slice/unattended-upgrades.service
配置无人参与的自动更新
可以通过编辑“ /etc/apt/apt.conf.d/50unattended-upgrades”文件来配置“ unattended-upgrades”软件包。
默认配置对于大多数用户来说应该可以正常工作,但是我们可以打开文件并根据需要进行更改。
我们可以更新所有软件包,也可以仅更新安全性。
/etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}"; "${distro_id}:${distro_codename}-security"; //Extended Security Maintenance; doesn't necessarily exist for //every release and this system Jan not have it installed, but if //available, the policy for updates is such that unattended-upgrades //should also install from here by default. "${distro_id}ESM:${distro_codename}"; // "${distro_id}:${distro_codename}-updates"; // "${distro_id}:${distro_codename}-proposed"; // "${distro_id}:${distro_codename}-backports"; };
第一部分定义了将自动更新哪些类型的软件包。
默认情况下,它将仅安装安全更新,如果要启用其他存储库中的更新,则可以通过从行的开头删除双斜杠“ //”来取消对相应存储库的注释。
'//'之后的任何内容都是注释,程序包不会读取。
如果出于任何原因要禁止某些软件包自动更新,只需将其添加到软件包黑名单中即可:
/etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Package-Blacklist { // "vim"; // "libc6"; // "libc6-dev"; // "libc6-i686"; };
如果由于某种原因自动更新出现问题,我们可能还希望接收电子邮件。
为此,请取消注释以下两行,然后输入电子邮件地址。
确保我们拥有一个可以发送系统上安装的电子邮件的工具,例如'mailx'或者'postfix'。
/etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Mail "[email protected]"; Unattended-Upgrade::MailOnlyOnError "true";
启用无人参与的自动更新
要启用自动更新,我们需要确保apt配置文件'/etc/apt/apt.conf.d/20auto-upgrades'至少包含以下两行,默认情况下应包括以下两行:
/etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";
上面的配置更新软件包列表,并每天安装可用的更新。
我们还可以添加以下行,每7天清除一次本地下载存档。
/etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::AutocleanInterval "7";
启用/禁用自动更新的另一种方法是运行以下命令,该命令将修改(或者创建(如果不存在的话))“/etc/apt/apt.conf.d/20auto-upgrades”。
sudo dpkg-reconfigure -plow unattended-upgrades
测验
要测试自动升级是否有效,请执行试运行:
sudo unattended-upgrades --dry-run --debug
输出应如下所示:
... pkgs that look like they should be upgraded: Fetched 0 B in 0s (0 B/s) fetch.run() result: 0 blacklist: [] whitelist: [] No packages found that can be upgraded unattended and no pending auto-removals
自动无人值守升级的历史记录记录在“ /var/log/unattended-upgrades/unattended-upgrades.log”文件中。