Ubuntu 22.04 中禁用 `unattended-upgrades` 完全指南

Ubuntu 22.04 中禁用 unattended-upgrades 完全指南

📌 什么是 unattended-upgrades

unattended-upgrades 是 Ubuntu 系统默认预装的自动更新工具,主要用于自动下载并安装安全更新(如系统漏洞修复、关键组件补丁),无需用户手动干预。其设计目的是提升系统安全性,但在部分场景下(如服务器稳定运行、测试环境控制、带宽受限等),用户可能需要禁用该功能。

⚠️ 禁用前的重要提醒

  • 禁用自动更新后,系统将不再自动获取安全补丁,需手动定期执行更新(推荐 sudo apt update && sudo apt upgrade -y),否则可能面临安全风险。
  • 以下方法适用于 Ubuntu 22.04(基于 Debian 11 架构),其他版本可能略有差异。
  • 操作前建议备份关键配置文件(如 /etc/apt/apt.conf.d/50unattended-upgrades)。

🔍 先检查 unattended-upgrades 状态

在禁用前,建议先确认当前是否启用了自动更新,避免无效操作。

方法 1:查看服务运行状态

sudo systemctl status unattended-upgrades 
  • 若输出含 active (running),表示服务正在运行;
  • 若含 inactive (dead),表示已停止(可能已被禁用)。

方法 2:检查配置文件状态

grep -r "Unattended-Upgrade" /etc/apt/apt.conf.d/ 
  • 若看到 APT::Periodic::Unattended-Upgrade "1";,表示启用自动更新;
  • 若为 "0",表示已禁用。

🛑 禁用 unattended-upgrades 的场景与方法

场景 1:临时停止服务(立即生效,重启后恢复)

适用于临时需要阻止自动更新运行(如正在进行系统测试,避免更新打断流程),重启后服务会自动恢复。

✅ 操作步骤:

验证是否停止:

sudo systemctl status unattended-upgrades # 应显示 `inactive (dead)`

停止正在运行的服务:

sudo systemctl stop unattended-upgrades 

💡 说明:此方法仅停止当前运行的服务,不影响开机自启,系统重启后服务会重新启动。

场景 2:永久禁用服务(禁止开机自启)

适用于长期不需要自动更新,希望彻底阻止服务启动(即使重启系统也不会运行)。

✅ 操作步骤:

验证禁用结果:

sudo systemctl is-enabled unattended-upgrades # 输出 `disabled` 表示成功

禁用开机自启:

sudo systemctl disable unattended-upgrades 

停止当前服务(若正在运行):

sudo systemctl stop unattended-upgrades 

💡 说明:disable 仅取消开机自启,若需临时启动服务,可执行 sudo systemctl start unattended-upgrades

场景 3:通过配置文件禁用自动更新

unattended-upgrades 的核心配置文件为 /etc/apt/apt.conf.d/50unattended-upgrades/etc/apt/apt.conf.d/20auto-upgrades,通过修改配置可从根源上关闭自动更新逻辑。

子场景 3.1:修改自动更新触发周期

20auto-upgrades 控制更新触发频率,将其设为 0 可禁用自动触发。

✅ 操作步骤:

  1. Ctrl+O 保存,Ctrl+X 退出。

将内容修改为(关键是把 Unattended-Upgrade 设为 0):

APT::Periodic::Update-Package-Lists "1"; # 仍每天更新软件源列表(可选设为0) APT::Periodic::Download-Upgradeable-Packages "0"; # 不自动下载更新包 APT::Periodic::AutocleanInterval "7"; # 保留7天内的安装包(可选设为0关闭) APT::Periodic::Unattended-Upgrade "0"; # 禁用自动更新(核心) 

编辑配置文件:

sudonano /etc/apt/apt.conf.d/20auto-upgrades 
子场景 3.2:禁用特定类型的自动更新

若只想禁用安全更新以外的自动更新(如普通软件更新),可修改 50unattended-upgrades 限制更新源。

✅ 操作步骤:

  1. 若想完全禁用所有自动更新,可直接清空 Allowed-Origins 列表。

注释掉不需要自动更新的源(在行首加 //),例如仅保留安全更新:

// 仅保留安全更新源,注释其他源 Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; # 安全更新(保留) // "${distro_id}:${distro_codename}-updates"; # 普通更新(禁用) // "${distro_id}:${distro_codename}-proposed"; # 测试更新(禁用) // "${distro_id}:${distro_codename}-backports"; # 回溯更新(禁用) }; 

编辑配置文件:

sudonano /etc/apt/apt.conf.d/50unattended-upgrades 

场景 4:通过图形化工具禁用(适合桌面用户)

Ubuntu 桌面版可通过「软件和更新」图形界面配置自动更新,操作更直观。

✅ 操作步骤:

  1. 打开「软件和更新」:
    • 方式 1:按下 Win 键,搜索 Software & Updates 并打开;
    • 方式 2:终端执行 sudo software-properties-gtk
  2. 切换到「更新」标签页(Updates):
  3. 配置「自动更新」选项:
    • Automatically check for updates 下拉菜单中选择 Never(从不检查更新);
    • 或在 When there are security updates 中选择 Display immediately(仅通知,不自动安装)。
  4. 点击「关闭」,系统会提示重新加载配置,选择「重新加载」即可。

场景 5:彻底卸载 unattended-upgrades(不推荐)

若确认永远不需要该工具,可直接卸载(但可能影响依赖它的系统组件,谨慎操作)。

✅ 操作步骤:

清理残留配置:

sudoapt autoremove -y &&sudoapt autoclean 

卸载软件包:

sudoapt purge unattended-upgrades -y 

⚠️ 风险提示:部分系统工具(如 update-manager)可能依赖 unattended-upgrades,卸载可能导致异常,建议优先选择「禁用服务」而非「卸载」。

🔄 如何恢复 unattended-upgrades

若之后想重新启用自动更新,可根据禁用方式反向操作:

恢复服务自启

sudo systemctl enable unattended-upgrades # 开启开机自启sudo systemctl start unattended-upgrades # 立即启动服务

恢复配置文件

  1. 恢复 50unattended-upgrades 中的更新源(移除行首 // 注释)。

编辑 20auto-upgrades 恢复默认值:

sudonano /etc/apt/apt.conf.d/20auto-upgrades 

恢复为:

APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7"; APT::Periodic::Unattended-Upgrade "1"; 

图形界面恢复

在「软件和更新」→「更新」中,将 Automatically check for updates 设为 Daily(每天),并在 When there are security updates 中选择 Download and install automatically

❓ 常见问题解答

Q1:禁用后如何手动更新系统?

执行以下命令手动安装所有更新(包括安全更新):

sudoapt update # 更新软件源列表sudoapt upgrade -y # 安装可用更新sudoapt dist-upgrade -y # 处理依赖关系变更(可选)sudoapt autoremove -y # 清理无用依赖

Q2:禁用后系统会提示更新吗?

  • 若仅禁用 unattended-upgrades 服务,桌面版仍会通过「软件更新器」提示更新(需手动确认安装);
  • 若通过图形界面设置为「Never check for updates」,则不会提示,需手动执行 apt update 检查。

Q3:服务器环境推荐禁用吗?

服务器对稳定性要求高,自动更新可能导致服务重启或配置冲突,建议禁用自动安装,但需定期手动更新(如每周一次),并在更新前备份数据。

Q4:如何确认禁用已生效?

  1. 检查服务状态:sudo systemctl status unattended-upgrades(应为 inactive);
  2. 检查配置:grep "Unattended-Upgrade" /etc/apt/apt.conf.d/20auto-upgrades(应为 "0");
  3. 观察日志(禁用后不应有新的更新记录):sudo tail -f /var/log/unattended-upgrades/unattended-upgrades.log

📝 总结

unattended-upgrades 是 Ubuntu 保障安全的重要工具,禁用需谨慎。根据需求选择合适的方式:临时禁用用 systemctl stop,长期禁用用 systemctl disable 配合配置文件修改,桌面用户可通过图形界面操作。禁用后务必定期手动更新系统,避免安全漏洞。

Read more

如何通过 3 个简单步骤在 Windows 上本地运行 DeepSeek

如何通过 3 个简单步骤在 Windows 上本地运行 DeepSeek

它是免费的——社区驱动的人工智能💪。         当 OpenAI 第一次推出定制 GPT 时,我就明白会有越来越多的人为人工智能做出贡献,并且迟早它会完全由社区驱动。         但从来没有想过它会如此接近😂让我们看看如何在 Windows 机器上完全免费使用第一个开源推理模型!  步骤 0:安装 Docker 桌面         我确信很多人已经安装了它,所以可以跳过,但如果没有 — — 这很简单,只需访问Docker 的官方网站,下载并运行安装 👍         如果您需要一些特定的设置,例如使用 WSL,那么有很多指导视频,请查看!我将继续下一步。 步骤 1:安装 CUDA 以获得 GPU 支持         如果您想使用 Nvidia 显卡运行 LLM,则必须安装 CUDA 驱动程序。(嗯……是的,它们需要大量的计算能力)         打开CUDA 下载页面,

By Ne0inhk
在 VSCode 中本地运行 DeepSeek,打造强大的私人 AI

在 VSCode 中本地运行 DeepSeek,打造强大的私人 AI

本文将分步向您展示如何在本地安装和运行 DeepSeek、使用 CodeGPT 对其进行配置以及开始利用 AI 来增强您的软件开发工作流程,所有这些都无需依赖基于云的服务。  步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT         要在本地运行 DeepSeek,我们首先需要安装Ollama,它允许我们在我们的机器上运行 LLM,以及CodeGPT,它是集成这些模型以提供编码辅助的 VSCode 扩展。 安装 Ollama Ollama 是一个轻量级平台,可以轻松运行本地 LLM。 下载Ollama 访问官方网站:https://ollama.com * 下载适合您的操作系统(Windows、macOS 或 Linux)的安装程序。 * 验证安装 安装后,打开终端并运行: ollama --version  如果 Ollama 安装正确,

By Ne0inhk
DeepSeek-R1是真码农福音?我们问了100位开发者……

DeepSeek-R1是真码农福音?我们问了100位开发者……

从GitHub Copilot到DeepSeek-R1,AI编程工具正在引发一场"效率革命",开发者们对这些工具的期待与质疑并存。据Gartner预测,到2028年,将有75%的企业软件工程师使用AI代码助手。 眼看着今年国产选手DeepSeek-R1凭借“深度思考”能力杀入战场,它究竟是真码农福音还是需要打补丁的"潜力股"? ZEEKLOG问卷调研了社区内来自全栈开发、算法工程师、数据工程师、前端、后端等多个技术方向的100位开发者(截止到2月25日),聚焦DeepSeek-R1的代码生成效果、编写效率、语法支持、IDE集成、复杂代码处理等多个维度,一探DeepSeek-R1的开发提效能力。 代码生成效果:有成效但仍需提升 * 代码匹配比例差强人意 在代码生成与实际需求的匹配方面,大部分开发者(58人)遇到生成代码与实际需求完全匹配无需修改的比例在40%-70%区间,12人遇到代码匹配比例在70%-100%这样较高的区间。 然而,有30人代码匹配比例低于40%。这说明DeepSeek-R1在代码生成方面有一定效果,但在部分复杂或特定场景下,仍有很大的提升空间。

By Ne0inhk
AI+游戏开发:如何用 DeepSeek 打造高性能贪吃蛇游戏

AI+游戏开发:如何用 DeepSeek 打造高性能贪吃蛇游戏

文章目录 * 一、技术选型与准备 * 1.1 传统开发 vs AI生成 * 1.2 环境搭建与工具选择 * 1.3 DeepSeek API 初步体验 * 二、贪吃蛇游戏基础实现 * 2.1 游戏结构设计 * 2.2 初始化游戏 * 2.3 DeepSeek 生成核心逻辑 * 三、游戏功能扩展 * 3.1 多人联机模式 * 3.2 游戏难度动态调整 * 3.3 游戏本地保存与回放 * 3.4 跨平台移植 * 《Vue.js项目开发全程实录/软件项目开发全程实录》 * 编辑推荐 * 内容简介 * 作者简介 * 目录 一、

By Ne0inhk