在Ubuntu中保持自动升级,随时了解最新信息

你是否在寻找方法来保持你的Ubuntu系统处于最佳状态?你很幸运!学习如何通过自动升级保持Ubuntu系统的最新状态。

在本教程中,你将学习如何在你的机器上设置自动升级,配置以完全控制哪些软件包需要升级。

敬请关注,让自动升级帮助你的Ubuntu系统保持最新状态!

需求

本教程包括实际演示。要完成本教程,你将需要以下内容:

  • 一个Ubuntu系统 – 本教程使用Ubuntu 20.04,但你可以使用任何版本的Ubuntu,包括Ubuntu桌面版、Ubuntu服务器版或Kubuntu。
  • A user account with sudo privileges.

在Ubuntu中安装自动升级

确保在发布时获得最新更新的最快方法之一是使用自动升级。本教程将使用apt软件包管理器在你的机器上安装自动升级。

1. 打开您的终端并运行以下命令apt update来更新系统的软件包索引。

sudo apt update -y
Updating your system’s package index

2. 接下来,运行以下命令apt install来安装 unattended-upgrades 软件包。

sudo apt install unattended-upgrades -y
Installing the unattended-upgrade package

3. 安装完成后,运行以下systemctl命令来启动并启用 unattended-upgrades 服务 systemd 单元。此命令确保服务在启动时自动启动,并在重启后保持持续运行。

# 启动 unattended-upgrades 服务
sudo systemctl start unattended-upgrades
# 启用 unattended-upgrades 在启动时自动启动
sudo systemctl enable unattended-upgrades

4. 最后,运行以下命令来检查 unattended-upgrades 服务单元的状态,以确保其正确运行。

sudo systemctl status unattended-upgrades.service
Checking the status of the unattended-upgrades service unit

配置自动升级

安装并启用自动升级应该可以正常工作,让您的机器自动更新。但如果有您不希望持续更新的软件包,配置自动升级就可以解决问题。

要配置自动升级,请在您喜欢的文本编辑器中打开配置文件(/etc/apt/apt.conf.d/50unattended-upgrades)。

您会看到类似下面的配置。每个选项前面的 // 符号表示该选项已被注释掉,自动升级服务会忽略它。

Opening the Automatic Upgrade configuration file

继续阅读并了解如何完全控制哪些软件包会不断更新。

忽略特定软件包

如果可以将其他软件包列入黑名单,为什么要让它们更新呢?自动升级配置文件使您能够忽略特定的软件包。无论您是要完全忽略软件包还是推迟它们的升级,这个功能都很有用。

滚动到Unattended-Upgrade::Package-Blacklist部分,并在每行上添加要列入黑名单的任何软件包的名称。

例如,添加apache2以将Apache软件包列入黑名单。

Ignoring specific packages from automatically updating

启用额外的存储库

默认情况下,Automatic Upgrade仅启用官方Ubuntu和安全存储库。但您可以允许其他存储库包含在升级过程中。

滚动到Unattended-Upgrade::Allowed-Origins部分。

Viewing repositories

现在,删除任何要启用的存储库前面的 // 符号。

此教程启用所有Ubuntu存储库,例如:

  • 更新 – 用于稳定的软件包发布。
  • 建议 – 用于测试新的稳定软件包版本。
  • 后移 – 用于现有稳定软件包的更新版本。
Enabling extra repositories

自动重新启动系统

您会选择在成功升级后自动重新启动系统吗?为什么?这样做有助于确保您的系统始终是最新的。但如果您在系统升级进行时正在使用系统,则此功能也可能会产生干扰。

要启用自动重新启动功能,请向下滚动到 Unattended-Upgrade::Automatic-Reboot 行,删除 // 符号,并确保将值设置为 true。

Setting the automatic reboot after an upgrade

删除未使用的依赖项

已安装的依赖项仅占用存储空间。为什么不将它们删除呢?此配置可让您配置在成功升级后是否应自动删除未使用的依赖项。

请注意,虽然此功能有助于保持系统清洁,但也可能会删除您仍然需要但已不再被升级软件包使用的软件包。

要启用删除未使用依赖项的功能,请查找 Unattended-Upgrade::Remove-Unused-Dependencies 行,删除 // 符号,并将值设置为 true。

Setting unused dependencies to be removed after an upgrade

启用详细日志记录

当升级失败时,您如何知道是什么导致了失败?详细日志记录是获取有关自动升级过程更多信息的好方法。

此功能可帮助排除升级失败的问题,或者如果您只是想了解发生了什么事情背后的情况。

要启用详细日志记录,请向下滚动至“Verbose Logging”行,删除//符号,并将值设置为true。 修改后,请保存并关闭文件以使更改生效。

Enabling verbose logging

启用无人值守自动更新

此时,您应该对如何配置自动升级以满足您的需求有很好的了解。 但是,您仍然需要一种方式,特别是一个文件,告诉系统何时运行自动更新。 此文件名为20auto-upgrades,并且需要放置在/etc/apt/apt.conf.d目录中。

在/etc/apt/apt.conf.d目录中管理或创建文件需要sudo权限。

要启用无人值守自动更新:

1. 在您喜欢的文本编辑器中,在/etc/apt/apt.conf.d/中创建一个名为20auto-upgrades的文件。

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

2. 接下来,将以下配置选项添加到20auto-upgrades文件中,保存更改并关闭文件。

此配置是您开始使用自动更新所需的最少配置,其中:

  • 第一行告诉系统每天更新可用软件包列表。 这个选项是必需的,所以系统知道哪些软件包有可用的更新。
  • 第二行告诉系统每天运行一次无人值守升级。 这个选项是执行升级过程的内容。
  • 第三行告诉系统每周自动清理任何旧文件或未使用的文件。
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "7";

3. 最后,运行以下命令来重新启动unattended-upgradesservice以应用更改。

这个命令不提供输出,但你可以在以下部分测试所有配置。

sudo systemctl restart unattended-upgrades.service

测试自动升级配置

你已经成功配置了所有内容。但是你怎么知道所有配置都在运行?定期更新每天发生一次,所以你不应该等待太长时间。

但是测试自动升级配置的最快方法是执行未人工干预的升级过程的干跑。

运行下面的未人工干预升级命令来进行所有升级的干跑,而不实际安装任何升级(–debug)。

sudo unattended-upgrades --dry-run --debug

你会看到相对长的输出。但是在开头,你会看到像下面这样的输出。

你可以看到,apache2 软件包被列入黑名单,这表明你的配置在阻止软件包升级方面起作用。

Performing a dry run

现在,浏览输出,你会看到一个像下面这样的部分,显示了几个软件包的可用更新。每个更新都被下载但没有安装,因为你只进行了干跑。

Viewing available package updates

查看自动升级日志

一旦你验证了你的配置是有效的,你可能想要查看最近一次升级时发生了什么。未人工干预升级的日志存储在 /var/log/unattended-upgrades 文件中,你可以查看。

运行下面的 grep 命令只显示以单词字符开头的日志(^\w),过滤掉所有空行和只包含破折号的行。

grep '^\w' /var/log/unattended-upgrades/unattended-upgrades.log

下面,您可以看到如下日志信息:

  • 上次未经人员干预的升级运行时间。
  • 升级了哪些软件包。
  • 进程启动和完成时间。
Viewing the unattended upgrade logs

结论

保持服务器更新是维护其安全性的重要部分。在本教程中,您还学会了如何在Ubuntu上安装和配置自动升级。您还测试了您的配置,并查看了日志,了解上次自动更新运行时发生了什么。

此时,您完全掌握了哪些软件包会接收自动升级的完全控制。但不要就此停止!自动升级还有许多其他未经人员干预的升级配置选项可供选择。

Source:
https://adamtheautomator.com/automatic-upgrades-in-ubuntu/