我如何真正彻底地关闭自动更新?

我如何真正彻底地关闭自动更新?

在 x64 上运行 Ubuntu 18.04。

我需要完全关闭 Ubuntu 系统上的“自动更新提醒”功能。问题是机器正在进行一些无人值守的处理,而更新提醒会干扰它。

不久前,我通过 Google 寻求帮助,并得到了一些建议,让我进入软件更新程序“设置”,将“提醒我何时”设置为“从不”。这个方法有点(但不是真的)管用。它会禁用出现的大屏幕(告诉您“我们为您准备了新软件”),但不会禁用小屏幕。

无论如何,我可以继续详细解释这是如何不起作用的,但关键是,很明显,它真的非常希望你这样做,并且他们让配置变得难以工作——真正将其关闭。

所以,我需要一些较低级别的功能 - 不是那么“用户化”或“GUI-I” - 因为那样根本行不通。必须有更低级别的功能 - 一些服务或您可以终止或禁用以解决此问题的东西。您能帮我吗?

答案1

最简单的方法是禁用所有自动升级。以下是在 Ubuntu 18.04 和 20.04 上执行此操作的方法:

  1. 打开终端(如果这是 Ubuntu 服务器安装,只需通过 SSH 进入即可)
  2. 编辑 Apt 的20auto-upgrades文件以禁用所有内容:
sudo vi /etc/apt/apt.conf.d/20auto-upgrades
  1. 确保所有设置都正确0。如果设置正确,你将得到如下文件:
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";
  1. 继续你的生活

这就是全部内容了。将所有内容设置为零,所有通知、背景检查和不可见更新将完全消失。希望你执行此操作的系统是虚拟机或未连接到开放网络的东西。否则,当一些脚本小子利用你未打补丁的系统时,你可能会在一两年内产生新的问题。

答案2

  1. 如何卸载无人值守升级:sudo apt remove unattended-upgrades

    • 警告:对于大多数用户来说,卸载此软件包是个坏主意。您将无法再获得自动安全补丁。运行没有无人值守升级的 Ubuntu 系统是未经测试的——您可能会遇到意外错误。运行未打补丁的 Ubuntu 系统可能会使您容易受到已发布的漏洞攻击。如果这是企业或学校系统,运行未打补丁的 Ubuntu 系统可能会违反您的网络所有者的政策。

    有一天,如果你改变主意并想要恢复自动安全补丁:sudo apt install unattended-upgrades


  1. 如何卸载 Update-Notifier:sudo apt remove update-notifier

    Update-Notifier 包括屏幕顶部的小警报图标和小对话框,当有升级包可用时,它们都会提醒您。它们看起来很小,但它们是 Ubuntu 用户体验的重要组成部分。

    • 警告:对于大多数用户来说,卸载此软件包是个坏主意。删除此软件包也会删除您的桌面元包(ubuntu-desktop-minimalubuntu-desktop)。对于某些(并非全部)用户,删除桌面元包可能会使他们的整个桌面堆栈符合自动删除条件。在运行迁移到下一个版本的 Ubuntu 之前,必须重新安装桌面元包do-release-upgrade。别忘了。您已经收到警告。

    有一天,如果你改变主意并想要恢复此包:sudo apt install update-notifier


  1. 如何卸载更新管理器:sudo apt remove update-manager

    更新管理器包括大型每日/每周升级选择对话框和发布升级图形前端。

    • 警告:对于大多数用户来说,卸载此软件包是个坏主意。删除此软件包也会删除您的桌面元包(ubuntu-desktop-minimalubuntu-desktop)。对于某些(并非全部)用户,删除桌面元包可能会使他们的整个桌面堆栈符合自动删除条件。在运行迁移到下一个版本的 Ubuntu 之前,必须重新安装桌面元包do-release-upgrade。别忘了。您已经收到警告。

    有一天,如果你改变主意并想要恢复此包:sudo apt install update-manager

答案3

看看其他答案,似乎都没有解决这个问题。删除桌面元包不应该是禁止弹出通知的必要条件,而只需禁用自动更新就意味着您在手动运行时仍会收到弹出窗口apt update

我发现 Ubuntu 的这个设计失误非常令人遗憾。

我目前正在尝试修复以下问题:

#!/usr/bin/env bash

set -euxo pipefail

rm -rf pkg

for pkgname in update-manager update-notifier; do
    pkg="${PWD}/pkg/${pkgname}"
    ver=999:999
    install -d "${pkg}/DEBIAN"
    tee "${pkg}/DEBIAN/control" <<EOF >/dev/null
Package: ${pkgname}
Version: ${ver}
Section: gnome
Priority: optional
Architecture: all
Maintainer: Radon Rosborough <[email protected]>
Description: Prevent ${pkgname} from being installed
EOF

    fakeroot dpkg-deb --build "${pkg}" "${pkgname}.deb"
    sudo apt install -y "./${pkgname}.deb"
done

这应该是有效的,因为它完全卸载了不需要的包,但不会弄乱任何其他东西,因为我们用占位符替换了它们而不是正常删除它们。

如果这不起作用,我会带着新的想法回来。

答案4

楼主问

所以,我需要一些较低级别的功能 - 不是那么“用户化”或“GUI-I” - 因为那样根本行不通。必须有更低级别的功能 - 一些服务或某些您可以关闭或禁用以消除此问题的功能。

答案很简单:

$ sudo dpkg-reconfigure -plow unattended-upgrades

无需卸载任何东西。我必须承认,我不知道这会对 GUI/桌面产生什么影响,因为我不使用它,但我想它会阻止任何弹出窗口,因为弹出窗口无论如何都不能做任何事情。

您可以按照建议手动将更新频率设置为 0多于,但请参阅我对该答案的评论:您可能必须在多个文件中执行此操作。

参考:

https://github.com/mvo5/unattended-upgrades/blob/master/README.md https://help.ubuntu.com/community/AutomaticSecurityUpdates

相关内容