在 x64 上运行 Ubuntu 18.04。
我需要完全关闭 Ubuntu 系统上的“自动更新提醒”功能。问题是机器正在进行一些无人值守的处理,而更新提醒会干扰它。
不久前,我通过 Google 寻求帮助,并得到了一些建议,让我进入软件更新程序“设置”,将“提醒我何时”设置为“从不”。这个方法有点(但不是真的)管用。它会禁用出现的大屏幕(告诉您“我们为您准备了新软件”),但不会禁用小屏幕。
无论如何,我可以继续详细解释这是如何不起作用的,但关键是,很明显,它真的非常希望你这样做,并且他们让配置变得难以工作——真正将其关闭。
所以,我需要一些较低级别的功能 - 不是那么“用户化”或“GUI-I” - 因为那样根本行不通。必须有更低级别的功能 - 一些服务或您可以终止或禁用以解决此问题的东西。您能帮我吗?
答案1
最简单的方法是禁用所有自动升级。以下是在 Ubuntu 18.04 和 20.04 上执行此操作的方法:
- 打开终端(如果这是 Ubuntu 服务器安装,只需通过 SSH 进入即可)
- 编辑 Apt 的
20auto-upgrades
文件以禁用所有内容:
sudo vi /etc/apt/apt.conf.d/20auto-upgrades
- 确保所有设置都正确
0
。如果设置正确,你将得到如下文件:
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";
- 继续你的生活
这就是全部内容了。将所有内容设置为零,所有通知、背景检查和不可见更新将完全消失。希望你执行此操作的系统是虚拟机或未连接到开放网络的东西。否则,当一些脚本小子利用你未打补丁的系统时,你可能会在一两年内产生新的问题。
答案2
如何卸载无人值守升级:
sudo apt remove unattended-upgrades
- 警告:对于大多数用户来说,卸载此软件包是个坏主意。您将无法再获得自动安全补丁。运行没有无人值守升级的 Ubuntu 系统是未经测试的——您可能会遇到意外错误。运行未打补丁的 Ubuntu 系统可能会使您容易受到已发布的漏洞攻击。如果这是企业或学校系统,运行未打补丁的 Ubuntu 系统可能会违反您的网络所有者的政策。
有一天,如果你改变主意并想要恢复自动安全补丁:
sudo apt install unattended-upgrades
如何卸载 Update-Notifier:
sudo apt remove update-notifier
Update-Notifier 包括屏幕顶部的小警报图标和小对话框,当有升级包可用时,它们都会提醒您。它们看起来很小,但它们是 Ubuntu 用户体验的重要组成部分。
- 警告:对于大多数用户来说,卸载此软件包是个坏主意。删除此软件包也会删除您的桌面元包(
ubuntu-desktop-minimal
和ubuntu-desktop
)。对于某些(并非全部)用户,删除桌面元包可能会使他们的整个桌面堆栈符合自动删除条件。在运行迁移到下一个版本的 Ubuntu 之前,必须重新安装桌面元包do-release-upgrade
。别忘了。您已经收到警告。
有一天,如果你改变主意并想要恢复此包:
sudo apt install update-notifier
- 警告:对于大多数用户来说,卸载此软件包是个坏主意。删除此软件包也会删除您的桌面元包(
如何卸载更新管理器:
sudo apt remove update-manager
更新管理器包括大型每日/每周升级选择对话框和发布升级图形前端。
- 警告:对于大多数用户来说,卸载此软件包是个坏主意。删除此软件包也会删除您的桌面元包(
ubuntu-desktop-minimal
和ubuntu-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