如何禁用更新管理器弹出窗口?

我配置了这个:
Automatically check for updates: Never

但是更新管理器一直不请自来地弹出,我完全无法控制。感觉好像又回到了使用Windows的日子。
我希望能够偶尔手动安装更新。
我该怎么办?

Xubuntu 16.04:「主菜单」→ 「会话和启动」→ 「应用程序自启动」→ 取消勾选「更新通知器」。 - Alexander Pozdneev
1调试桌面通知使用dbus的专业技巧:dbus-monitor --session "interface=org.freedesktop.Notifications"…我在识别发送通知信号的服务时遇到了很大困难,这个方法帮助了我很多。 - jmunsch
真正的答案应该是配置系统,使其自动静默地执行所有系统更新,不弹出任何窗口,也不需要交互式问题...我正在尝试以这种方式设置我祖母的Ubuntu 19.10系统,虽然还不够简单易用,但仍然有希望。 - Scott Stensland
21个回答

禁用配置中的弹出窗口似乎是不可能的,正如coteyr在这个页面的评论中所说(https://askubuntu.com/a/218780/19753"需要注意的是,除了删除update-manager-core,你不能真正停止弹出。你只能把它推迟到其他东西运行apt-get update" - coteyr Nov 18 '12 at 9:14)。

我也想摆脱弹出窗口和底层程序,这些程序会消耗我的Ubuntu 12.04系统上的资源,并且我的计算机是一台弱小的Toshiba AC100(ARM)-- https://answers.launchpad.net/ac100/+question/214505/

因此,最简单的工作解决方案必须是删除"update-manager"(正如我在https://unix.stackexchange.com/a/46315/4319的评论中提到的):

apt-get remove update-manager

我之后没有遇到任何问题,因为我仍然可以使用apt-get或synaptic来进行软件包更新。
有用的评论:
antivirtel:在16.10版本中无法删除它,因为这将删除其他软件包,如ubuntu-desktop。一个可能的解决方案是:删除二进制文件(/usr/bin/update-manager)或chmod -x /usr/bin/update-manager,并通过apt hold package来阻止更新(echo update-manager hold | sudo dpkg --set-selections)。
mchid:ubuntu-desktop是一个元软件包,所以你可以删除它而不会删除实际的桌面,所以这不应该是个问题。
Dylan Parry:最好只删除update-notifier而不是整个更新管理器。记得在删除后运行pkill update-notifier(或重新启动),否则Ubuntu会在指示面板中显示错误。

2上面没有评论。 - Ruslan
@Ruslan 他们是“aove”,你可以猜到。具体来说,coteyr的这个回答精确地描述了情况--http://askubuntu.com/a/218780/19753:重要的是要注意,除了删除update-manager-core之外,你真的无法停止弹出窗口。**你只能将其延迟到其他东西运行`apt-get update`**-coteyr Nov 18 '12 at 9:14 - imz -- Ivan Zakharyaschev
2@imz - 在16.10版本中无法移除该软件,因为这将导致其他软件包被删除,比如ubuntu-desktop:http://paste2.org/xHxWLBtf - 一个可能的解决方案是:删除二进制文件(/usr/bin/update-manager),并使用apt hold命令来阻止更新(echo update-manager hold | sudo dpkg --set-selections)。 - antivirtel
2最好的做法可能是只删除update-notifier而不是整个更新管理器。在删除它之后记得运行pkill update-notifier(或重新启动),否则Ubuntu会在指示面板中显示错误信息。 - Dylan Parry
3@antivirtel ubuntu-desktop是一个元包,因此您可以删除它而不会删除实际的桌面环境,所以这不应该是个问题。 - mchid
1@DylanParry 尝试移除 update-notifier 也会同时移除 update-manager,所以实际上没有任何区别。 - Ruslan
当我尝试移除这个软件包时,它想要移除我的桌面。 - Aaron Franke
@mchid 写道:ubuntu-desktop 是一个元包,因此您可以删除它而不会删除实际的桌面环境,所以这应该不是个问题。 - imz -- Ivan Zakharyaschev

打开在apt之后运行update-manager部分的配置文件。
nano /etc/apt/apt.conf.d/99update-notifier

在每行前面加上“#”,使其类似于:
#DPkg::Post-Invoke {"if [ -d /var/lib/update-notifier ]; then touch /var/lib/update-notifier/dpkg-run-stamp; fi; if [ -e /var/lib/update-notifier/updates-available ]; then echo > /var/lib/update-notifier/updates-available; fi "; };

完成。
这对我来说很有效,可以阻止更新管理器在每次apt更新后弹出,同时仍然允许我手动运行更新管理器。

这似乎对我有用(16.04)。 - trinaldi
6这个配置文件的注释语法是以//开头的行 - 只要APT脚本跳过无效的行而不是停在语法错误上,这个解决方案可能有效。 - RichVel
2这对我在Xubuntu 18.04上没有起作用。我将文件中的两行注释掉了,但第二天软件更新器窗口又出现了。 - Ruslan
2这在我的Ubuntu 20.04上没有起作用。我不得不删除update-manager - PavoDive
如果这个方法似乎不起作用,记住可能有两行需要注释掉。所以如果你只注释掉第一行,你可能需要找出第二行从哪里开始,并且也注释掉第二行。对我来说,我在每行开头使用了两个斜杠来注释它们。 - mchid

仅仅关闭更新通知是不够的。有几个后台任务会运行apt-get update(包括每晚的cron作业,如果我没记错的话)。
要停止弹出窗口,请运行update-manager
然后在设置中,将自动更新设置为“从不”,将新版本通知设置为“从不”。

Sample settings

我建议立即离开安全区,并将“其他”设置为每两周一次。
您还需要确保您没有在其他地方运行apt-get update。这可能发生在您安装软件、运行update-manager或在cron作业中时。
如果这对您不起作用:
您可以通过编辑/etc/apt/apt.conf.d/10periodic并更改
APT::Periodic::Update-Package-Lists "1";

APT::Periodic::Update-Package-Lists "0";
最后的办法:
您也可以使用apt-get remove update-manager完全删除该功能。

3请注意,除了删除update-manager-core之外,你实际上无法停止弹出窗口。你只能将其延迟到其他命令运行“apt-get update”之后。 - coteyr
1啊,apt-get update 就是罪魁祸首了。那么如果我移除 update-manager-core,我会失去什么呢?我记得在某个地方看到说如果你使用 Unity,它还会一并移除桌面。 - ChocoDeveloper
3它将删除桌面的“元包”。但这不会造成任何损害。它只是一个安装所有其他官方“Ubuntu”所需软件包的快捷方式。你将失去更新管理器。你需要手动更新。 - coteyr
6实际上运行 apt-get remove update-manager-core 会删除几乎整个系统。正确的包要删除的是 update-notifier:apt-get remove update-notifier,这样也会删除 update-manager-core 而不会导致其他包被删除。祝好!:) - Rho
1编辑/etc/apt/apt.conf.d/10periodic只会停止apt-get自动检查更新,但不会停止通知。 - Anwar
移除是最好的解决方案 - deFreitas
同意@Rho的观点-使用apt-get remove update-notifier是最好的解决办法。 - Mendhak
当我尝试清除update-notifier时,我得到了这个列表:ubuntu-desktop* ubuntu-release-upgrader-gtk* update-manager* update-notifier*。我不太确定为什么,但它想要摆脱ubuntu-desktop,这可以说是有问题的...(这是在18.04版本中) - Alexis Wilke
@AlexisWilke 这没问题:请看这个评论 - bfontaine
@bfontaine 除非这会导致数十个核心包被标记为自动删除。 - Wlerin

我们在本地服务器上安装了Ubuntu 20.04,并在其中安装了Lubuntu桌面以供GUI使用。我们通过从服务器上卸载其软件包来禁用了更新通知弹窗。以下是相关命令:
# sudo apt-get --purge remove lubuntu-update-notifier

我认为上述命令对你会有帮助。

天才回答,谢谢。 - pacify

编辑 /etc/update-manager/release-upgrades 并设置:
Prompt=never(使用您喜欢的编辑器更改此项)。
永远不要使用 update-manager -d,这会检查下一个版本是否可用。

你已经设置为永不检查更新,但你会发现更新管理器正在打开,因为它已经知道有需要完成的更新。完成这些更新后,它就不会再打扰你,直到你更新文件列表。
这有点像终端会告诉你apt列表中有更新,只要你用'apt-get update'放入了更新,它就会一直提醒你,直到你安装它们。

现在你让我怀疑我是否已经在这个特定的盒子里做过这件事。我会再试一次。 - ChocoDeveloper
1这在14.04版本(xfce ubuntustudio 64)上不起作用。它会检查更新并报告我的计算机已经是最新的。 - mchid

pkill update-notifier
sudo mv /usr/bin/update-notifier /usr/bin/update-notifier.real
echo -e '#!/bin/bash\nwhile :; do /bin/sleep 86400; done' | sudo tee /usr/bin/update-notifier
sudo chmod 755 /usr/bin/update-notifier

残酷,但有效。

1为什么要整整一天的睡眠,而不是简单地“离开”呢? - muru
如果服务经理在退出时不断重新启动更新通知器,可能会引起问题。我不确定到底是哪个程序管理了这个“功能”。很高兴你仍然可以卸载它而不会立即出现任何问题 =/,希望不再拥有ubuntu-gnome-desktop元包不会让我错过未来添加的酷炫程序。 - sig_seg_v
3这是一个可靠的选择,但它不能处理软件包更新。sudo dpkg-divert --divert /usr/bin/update-notifier.ubuntu --rename /usr/bin/update-notifier 告诉打包系统系统管理员已经接管了该文件。 - Sean Perry

Ubuntu自动检查更新是好事,但弹出窗口却不受控制。你可以通过gnome栏或基于终端的应用程序(如Byobu)获得更少侵入性的通知。

要在保持更新管理器自动检查更新的同时禁用更新通知器,请从终端运行以下命令:

  1. sudo apt-get install gconf-editor(如果尚未安装)
  2. sudo gconf-editor(注意sudo属性)
  3. 搜索app->update-notifier并取消选中"auto-launch"选项
  4. 关闭窗口
  5. gconf-editor(这次作为用户,即不使用sudo)
  6. 再次搜索app->update-notifier并将"regular_auto_launch_interval"更改为您希望它在弹出之前等待的天数(0表示立即弹出,1表示一天,99999999表示几乎不再弹出)

1这听起来像是我需要的,但我没有那个选项。我有'apps->update-manager',但没有'auto-launch'可以取消选择。 - ChocoDeveloper
6我也没有update-notifier(13.04)。看起来这个指令至少对于13.04版本已经过时了? - pileofrocks
1如果您没有update-notifier条目,您可以使用命令行:gconftool-2 --set "/apps/update-notifier/regular_auto_launch_interval" --type int 9999 - webbertiger
1截至17.04,无法正常工作。 - detly
Ubuntu自动检查更新并不好,而且没有给你选择的机会。在终端手动检查更新是我日常例行公事的一部分。当不受欢迎的时候,GUI弹窗就像棒球棍对脸一样不受欢迎。 - pcnate

我不喜欢自动更新,所以我想永远禁用它们。 我使用带有Gnome桌面环境的Ubuntu 14.04。在其他Ubuntu版本中可能没有可用的gsettings。
在网络连接较慢的情况下,禁用apt-xapian-index可以防止自动下载软件包,这将占用所有带宽(有时我的移动网络只有256 kb/s)。
sudo chmod a-x /etc/cron.daily/update-notifier-common 
sudo chmod a-x /etc/cron.weekly/apt-xapian-index 
sudo chmod a-x /etc/cron.weekly/update-notifier-common 

gsettings set com.ubuntu.update-notifier regular-auto-launch-interval 3650
gsettings set com.ubuntu.update-manager launch-time 1900000000

似乎对我有效。 3650表示天数... 1900000000表明update-manager最后在2030年运行 :)
更新:在Ubuntu 16.04上,您似乎可以使用以下命令和编辑两个文件来禁用自动更新:
sudo mv /etc/xdg/autostart/update-notifier.desktop /etc/xdg/autostart/update-notifier.desktop.old 
sudo mv /etc/xdg/autostart/gnome-software-service.desktop /etc/xdg/autostart/gnome-software-service.desktop.old

如果扩展名不是.desktop,这些命令将不会在系统启动时运行。
编辑/etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";

编辑 /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

如果您已经启动了更新管理器,即使只有一次,这些文件也将包含四行。
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";

只需将所有值更改为"0"。

对于Ubuntu 16.04,以及可能的其他版本:
sudo chmod 000 /usr/bin/update-manager
sudo chmod 000 /usr/bin/update-notifier

然后重新启动。 (或者,仅仅注销并重新登录可能就足够了。)
您可以通过检查以下输出来验证update-manager是否正在运行:
ps auxwww | grep update

(附注:其他帖子建议使用“sudo apt-get purge update-notifier*”命令。然而,我更倾向于不删除可能与各种“desktop”元包相关联的软件包。)

1嗯,这些答案中有几个看起来像是危险的黑客攻击。 - Caleb Stanford