如何在 Debian 12/11/10 Linux 上配置无人值守升级

Debian 以其在基于 Linux 的操作系统中的稳健性和全面的软件库而脱颖而出。对于希望在 Debian 12 Bookworm 或 Debian 11 Bullseye 或 Debian 10 Buster 的较旧稳定版本上配置无人值守升级的用户,无人值守升级包提供了简化的解决方案。此实用程序通过自动执行更新过程,简化了维护更新和安全系统的过程。

无人值守升级包的主要优势:

  • 无缝自动化:该软件包旨在自动获取和安装安全和软件更新,无需人工监督。
  • 增强安全性:该软件包确保及时安装最新的安全补丁,从而增强系统抵御潜在威胁和漏洞的能力。
  • 定制更新:用户可以指定要更新哪些包以及要排除哪些包,从而获得定制的更新体验。
  • 透明度:所有更新活动都经过精心记录,用户在安装后会收到通知,确保他们始终了解系统变化。

利用无人值守升级包的功能可确保 Debian 系统保持安全和最新,从而优化性能和可靠性。

安装无人值守升级包

步骤1:更新Debian系统软件包

在安装和设置无人值守升级包之前,请更新您的 Debian 系统以防止冲突。要更新您的 Debian 系统,请打开终端并输入以下命令:

sudo apt update && sudo apt upgrade

此命令将更新所有已安装的软件包及其依赖项至最新版本。根据系统可用的更新数量,此过程可能需要一些时间。

第 2 步:安装无人值守升级包

要在 Debian 系统上安装无人值守升级包,您需要打开终端并输入以下命令:

sudo apt install unattended-upgrades

此命令将在您的系统上安装该包及其所有依赖项。

笔记: 该包应该已经默认安装,但如果您已删除它,则可以使用上述命令重新安装它。

步骤 3:安装无人值守升级的附加软件包

如果您希望 Debian 系统在需要重新启动系统的升级后自动重新启动,则必须安装 apt-config-auto-update 包。执行以下命令进行安装:

sudo apt install apt-config-auto-update

笔记本电脑用户应安装 powermgmt-base 软件包,以利用与电池设置相关的无人值守选项。要获取此软件包,请启动终端并输入以下命令:

sudo apt install powermgmt-base

安装软件包后,请根据自己的喜好对其进行配置。例如,您可以决定自动应用哪些更新、绕过哪些更新以及安装的时间。请记住,无人值守升级软件包需要 root 访问权限。因此,请始终在本指南中突出显示的命令前加上前缀 sudo.

步骤 4:验证无人值守升级安装

我们建议您验证无人值守升级包以确保其正常运行。打开终端并输入以下命令:

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

最好熟悉无人值守升级的 systemctl 命令。这很重要,因为您可能需要在进行更改或重新启动后检查状态。

要检查无人值守升级的状态,请输入以下命令:

systemctl status unattended-upgrades

第 5 步:了解无人值守升级 Systemd 命令

以下 systemctl 命令将允许您启动、停止、在启动时启用、在启动时禁用或重新启动无人值守升级服务:

启动无人值守服务:

sudo systemctl start unattended-upgrades

停止无人值守的服务:

sudo systemctl stop unattended-upgrades

在启动时启用无人值守服务:

sudo systemctl enabe unattended-upgrades

在启动时禁用无人值守服务:

sudo systemctl disable unattended-upgrades

重新启动无人值守服务:

sudo systemctl restart unattended-upgrades

配置无人值守升级

在本节中,我们将引导您使用终端命令在配置文件中配置无人值守升级包设置。请记住,您可以根据需要自定义这些设置。我们将深入研究每组设置,以确保您掌握其用途和功能,帮助您对 Debian 系统上的无人值守升级包进行明智的调整。

步骤 1:了解无人值守升级的 CLI 选项

在处理配置文件之前,让我们回顾并解释无人值守升级包可用的所有 CLI 选项:

选项描述
-h、–帮助显示帮助消息并退出
-d,-调试启用调试消息
–apt-debug品牌 apt/libapt 打印详细的调试消息
-v、–详细启用信息消息
–dry-run模拟升级过程并下载但不安装
–仅下载仅下载升级;不要尝试安装它们
–最小升级步骤以最少的步骤升级软件包(并允许使用 SIGTERM 中断)——这是默认行为
–无最低升级步骤将所有软件包一起升级,而不是分成几个小包进行升级

当您在终端中运行 unattended-upgrades 命令时,这些选项起着至关重要的作用。您可以灵活地使用各种选项来控制自动升级过程。例如,您可以使用 –dry-run 选项来测试升级过程,而无需进行实时系统更改。同样,–download-only 选项允许您下载升级而不安装它们。

默认情况下,无人值守升级使用 –minimal-upgrade-steps 选项。另一方面,–no-minimal-upgrade-steps 选项会一次性升级所有软件包,而不是分批升级。在配置无人值守升级时理解这些选项对于确保该过程符合您的偏好和需求至关重要。

第 2 步:设置无人值守升级配置文件

我们建议使用具有 root 权限的文本编辑器(如 nano)修改配置文件。使用以下命令在 nano 编辑器中打开配置文件:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

打开后,您可以根据需要修改各种选项。必须删除所有注释(以 "//" or "#") 来激活选项。

对配置文件进行任何更改后,必须运行以下命令来应用更改:

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

此命令将模拟升级运行并显示由于您对配置文件所做的更改而可能发生的任何错误或警告。如果一切正常,您可以运行以下命令来执行实际升级:

sudo unattended-upgrades

配置文件中有几个选项可以修改。以下是一些示例:

允许来源

默认情况下,无人值守升级包仅允许来自安全和更新存储库的更新。您可以通过在配置文件中取消注释此选项并指定所需的源来添加其他存储库。下面提供了一个示例。

Unattended-Upgrade::Allowed-Origins {
      "${distro_id}:${distro_codename}";
      "${distro_id}:${distro_codename}-security";
      "${distro_id}:${distro_codename}-updates";
      "${distro_id}:${distro_codename}-proposed";
      "${distro_id}:${distro_codename}-backports";
};

软件包黑名单

此设置允许您自动选择您不想更新的软件包。为此,请从此选项中删除注释并添加要排除的软件包的名称,如下例所示:

Unattended-Upgrade::Package-Blacklist {
      "my-package";
      "my-other-package";
};

自动修复中断Dpkg

此设置确定系统是否应自动修复中断的“dpkg”安装。要激活自动修复,请将值更改为“true”,如下例所示:

Unattended-Upgrade::AutoFixInterruptedDpkg "true";

开发者发布“自动”

使用此选项可确定系统是否应自动升级到开发版本。默认情况下,系统不会激活此选项。要触发自动升级到开发版本,请将值更改为“自动”,如下例所示:

Unattended-Upgrade::DevRelease "auto";

最小步骤“真”

此选项允许您选择是否以最小步骤执行升级。系统默认启用此选项。如果您想要关闭最小步骤并一次性执行升级,请将值更改为“false”,如下例所示:

Unattended-Upgrade::MinimalSteps "false";

InstallOnShutdown “false”

此选项决定系统是否应在关机时安装升级。系统默认禁用此选项。要激活关机安装,请将值更改为“true”,如下例所示:

Unattended-Upgrade::InstallOnShutdown "true";

邮件

使用此选项指定接收通知的电子邮件地址。默认情况下,系统不会发送通知。要分配特定的电子邮件地址,请将其输入为字符串值,如下例所示:

Unattended-Upgrade::Mail "example@mail.com";

MailReport“更改时”

此选项设置邮件通知的时间。默认情况下,系统仅在检测到更改时发送通知。如果您希望每次都收到通知,请将值更改为“on-start”,如下例所示:

Unattended-Upgrade::MailReport "on-start";

删除未使用的内核包

此选项决定系统是否应在升级后删除不再使用的内核包。默认情况下,系统启用此选项。如果您想阻止系统删除未使用的内核包,请将值设置为“false”,如下例所示:

Unattended-Upgrade::Remove-Unused-Kernel-Packages "false";

删除新的未使用的依赖项

此选项可让您删除因软件包升级而过时的新引入的依赖项。默认情况下,系统启用此选项,确保删除不再需要的任何新依赖项。

Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

如果您想保留新的依赖项,请将值设置为“false”以停用此选项。但是,请记住,停用可能会导致系统上积累未使用的依赖项,从而占用大量磁盘空间。

删除未使用的依赖项

此选项可让您在升级后删除未使用的依赖项。默认情况下,系统不启用此选项。要使用此选项并消除未使用的依赖项,请将值更改为“true”,如下例所示:

Unattended-Upgrade::Remove-Unused-Dependencies "true";

自动重启

使用此选项决定系统是否应在升级后自动重启。系统默认不启用此选项。要激活自动重启,请将值更改为“true”,如下例所示:

Unattended-Upgrade::Automatic-Reboot "true";

自动重启用户

使用此选项决定升级后用户登录时系统是否自动重启。系统默认启用此选项。要关闭自动重启,请将值更改为“false”,如下所示:

Unattended-Upgrade::Automatic-Reboot-WithUsers "false";

自动重启时间

此选项设置系统升级后自动重启的时间。系统默认重启时间为“02:00”。如需调整重启时间,请按照以下示例修改值:

Unattended-Upgrade::Automatic-Reboot-Time "03:00";

获取::http::Dl-限制

使用此选项可指定包下载的最大下载速度(以千字节/秒为单位)。默认情况下,系统不启用此选项。要设置下载速度限制,请将值调整为您喜欢的速度(以千字节/秒为单位),如下例所示:

Acquire::http::Dl-Limit "100";

系统日志启用

使用此选项可确定系统是否应将升级事件记录到系统日志中。默认情况下,系统启用此选项。要关闭日志记录,请将值更改为“false”,如下例所示:

Unattended-Upgrade::SyslogEnable "false";

系统日志工具

使用此选项可确定哪个工具记录升级事件。系统默认将事件记录到“守护进程”工具中。要更改工具,请按以下示例所示调整值:

Unattended-Upgrade::SyslogFacility "local7";

仅限交流电源

使用此选项可确定是否仅在系统连接到交流电源时才进行升级。系统默认不激活此选项。要仅允许使用交流电源进行升级,请将值设置为“true”,如下例所示:

Unattended-Upgrade::SyslogFacility "local7";

跳过计量连接更新

此选项决定系统是否应在连接到计量连接时跳过更新。默认情况下,系统启用此选项,阻止在计量连接上下载更新。

要允许对计量连接进行更新,请将值更改为“false”,如下例所示:

Unattended-Upgrade::Skip-Updates-On-Metered-Connections "false";

详细

如果要显示详细的升级信息,请使用此选项。系统默认禁用此选项。要查看详细输出,请将值更改为“true”,如下例所示:

Unattended-Upgrade::Verbose "true";

调试

使用此选项决定是否希望系统在升级期间显示调试信息。默认情况下,系统不激活此选项。要打开调试输出,请将值更改为“true”,如下例所示:

Unattended-Upgrade::Debug "true";

允许降级

使用此选项决定系统是否应允许在升级期间降级软件包。系统默认禁用此选项。要允许降级,请将值更改为“true”,如下例所示:

Unattended-Upgrade::Allow-downgrade "true";

请记住,启用降级可能会有风险,并导致系统不稳定或暴露安全漏洞。建议仅在需要时使用此选项,并彻底评估潜在风险。

使用 Cron Job 安排自动升级

要安排 Debian 系统上的自动无人值守升级,您可以使用 cron 作业。Cron 是 Linux 中基于时间的作业调度程序,允许您在指定的时间或间隔自动运行命令或脚本。

要为无人值守升级创建 cron 作业,请按照以下步骤操作。

通过运行以下命令打开 crontab 配置文件:

sudo crontab -e

打开文件后,在底部添加以下行:

0 0 * * * /usr/bin/unattended-upgrade -d

添加上述行后,无人值守升级命令将在每天午夜运行 (0 0* * *)。要保存并退出文件,请按 “Ctrl+X”, 然后 “和”, 进而 “进入”.

当您的系统未使用时安排自动升级至关重要,因为升级可能需要重新启动或导致应用程序重新启动。

审计无人值守升级日志

Unattended-Upgrades 软件包默认将所有升级活动记录到 syslog 工具中。这些日志位于 /var/log/syslog 文件和其他系统日志中。

要查看无人值守升级的日志,可以使用以下命令:

sudo grep unattended-upgrades /var/log/syslog

要显示 syslog 文件中与 Unattended-Upgrades 相关的最后 50 条条目,可以使用以下命令:

sudo tail -n 50 /var/log/syslog | grep unattended-upgrades

您可以根据特定条件使用各种 grep 选项过滤日志。例如,要按日期和时间过滤日志,您可以使用以下命令:

sudo grep "unattended-upgrades.*YYYY-MM-DD" /var/log/syslog

将“YYYY-MM-DD”替换为您想要的年月日格式的日期。这样,此命令将显示所有包含关键字“unattended-upgrades”并与您指定的日期相对应的日志条目。

要按包名称过滤日志,请使用以下命令,将“package_name”替换为包的名称:

sudo grep "unattended-upgrades.*<package_name>" /var/log/syslog

要按包名称过滤日志,请使用以下命令并替换“ ”替换为要搜索的软件包名称。此命令将显示所有包含“unattended-upgrades”关键字并与指定软件包名称匹配的日志条目。

上述命令使您能够快速检查和过滤 Debian 系统上的无人值守升级日志,从而让您识别和解决升级过程中可能出现的任何问题。

结论

在 Debian Linux 上设置无人值守升级是一种很有价值的做法,可确保您的系统保持最新和安全。通过自动化该过程,您可以最大限度地降低错过关键安全补丁和错误修复的风险。总体而言,无人值守升级有助于维护 Debian Linux 系统的稳定性、安全性和性能,使其成为管理员和用户的必备工具。

Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)