如何在更新apt时摆脱Ubuntu Pro广告?

最近,每当我运行apt update/upgrade命令时,在终端中会出现以下信息:
Try Ubuntu Pro beta with a free personal subscription on up to 5 machines.
Learn more at https://ubuntu.com/pro

有人知道如何摆脱这个吗?

2在我的22.04系统上看不到,但是这看起来肯定是/etc/update-motd.d目录下的其中一个脚本导致了这个烦人的问题。关于相关信息,请参考这里:https://ubuntu.com/legal/motd,看起来禁用很容易:“/etc/default/motd-news”文件中有一个ENABLED=1的设置,将其设为0即可关闭此功能。 - andrew.46
@JohnC 我也没有看到过(包括在 jammy [22.04] 和 kinetic [即将发布的 22.10] 上),但我主要是桌面用户,这取决于安装系统时使用的 ISO/媒体以及添加了哪些软件包,才能确定是否会看到它。只有部分用户能看到它(抱歉,我没有研究过代码,也没有注意到之前几周或几个月的讨论;对我来说不感兴趣;最近有关此事的公告)。 - guiverc
4可能会感兴趣 - Ubuntu Pro APT 集成有点过头了,所以这个问题应该随着时间的推移而减少(至少如此);尽管我也注意到它在 Kubuntu 或桌面版本上发生。 - guiverc
3考虑评估其他基于DEB的发行版?Debian、Devuan等都存在并且可行。用你的实际行动表达出态度也是一个合理的选择。你并不只能固守一种发行版。 - Criggie
2这里有一个关于这个问题的错误报告。 https://bugs.launchpad.net/ubuntu/+source/ubuntu-advantage-tools/+bug/1992026 - Mark Fraser
1这不是一个"广告",而是一个"插件"。两者之间有明显的区别。 - Rinzwind
2@Rinzwind 毫无疑问,这是一则广告。使用标准措辞自动向所有使用者展示商业产品,这就是广告。 - reducing activity
8个回答

一种选择是将20apt-esm-hook.conf创建一个符号链接到/dev/null。
sudo ln -s -f /dev/null /etc/apt/apt.conf.d/20apt-esm-hook.conf

另一个选择是在该文件中注释掉动作行:
sudo sed -i'' -e 's/^\(\s\+\)\([^#]\)/\1# \2/' /etc/apt/apt.conf.d/20apt-esm-hook.conf

或者第三个选项是将该文件重命名为.bak文件,并创建一个同名的零长度文件。
sudo mv /etc/apt/apt.conf.d/20apt-esm-hook.conf /etc/apt/apt.conf.d/20apt-esm-hook.conf.bak
sudo touch /etc/apt/apt.conf.d/20apt-esm-hook.conf

13这对我来说似乎是最完整和正确的答案。尽管当使用符号链接到 /dev/null 时,我会收到一个关于它不是“常规文件”的通知。第三个选项胜出。谢谢你。 - Luis Flores III
这是我尝试过的第一件真正经得起apt update和重启的事情。 - Glen Whitney
我尝试了第三个选项(重命名文件等),但不幸的是对我没有起作用。Ubunut 22.04 LTS服务器。 - András Aszódi
第三个选项在我使用的Ubuntu 20.04.5 LTS桌面上非常好用。谢谢。 - Johan

删除每日消息文件并禁用Ubuntu Advantage。
sudo rm /etc/update-motd.d/88-esm-announce
sudo systemctl disable ubuntu-advantage

5这不是对问题的回答:你拿错了广告。问题是关于另一个广告的。 - wizzwizz4
@wizzwizz4 这对我起作用了 - MacroMan

这则广告是可选择退出的,而Canonical官方的做法有点秘密。禁用此功能的界面如下:
sudo pro config set apt_news=false 来源:Source

2我想指出这种方法的一个缺点——Ubuntu可能会在未来向Ubuntu Advantage添加更多的垃圾邮件来源,用户将不得不为每种新增的垃圾邮件类型设置越来越多的未记录标志。然而,对于需要安装Advantage的用户来说,你的解决方案似乎是他们唯一的选择。因此,我已将这种方法作为一种方法添加到从Ubuntu中删除垃圾邮件的综合指南中,并感谢你与我们分享这个秘密标志。 - Skye
9这不会移除“通过启用'esm-apps',通过Ubuntu Pro获取更多安全更新”的消息。 - sds

为了摆脱垃圾邮件,请卸载生成垃圾邮件的程序。
生成此垃圾邮件的软件包是ubuntu-advantage-tools。不幸的是,由于Ubuntu开发人员决定将其作为必需的系统软件包,以便他们可以赚更多的钱(是的,这是他们的官方理由),因此删除它有些棘手。
一个聪明的人名叫vi0oss提出了一个变通方法:用一个额外的软件包替换这个垃圾邮件软件包,并且该软件包ProvidesBreaksConflictsubuntu-advantage-tools。当这个修复方法因为Ubuntu开发人员要求使用更新版本而失效时,gamemanj找到了第二个变通方法。所有这些都已经打包到下面链接的最新版本中。

指南

  1. 在此处下载伪装包这里
  2. (可选) 使用dpkg -I fake-ubuntu-advantage-tools.deb验证软件包,检查元数据以了解其工作原理:
 new Debian package, version 2.0.
 size 744 bytes: control archive=384 bytes.
     300 bytes,     8 lines      control              
 Package: fake-ubuntu-advantage-tools 
 Version: 0.1
 Architecture: all
 Conflicts: ubuntu-advantage-tools
 Breaks: ubuntu-advantage-tools
 Provides: ubuntu-advantage-tools
 Description: Ban ubuntu-advantage-tools while satisfying ubuntu-minimal dependency
 Maintainer: Vitaly _Vi Shukela

(可选)使用dpkg -c fake-ubuntu-advantage-tools.deb命令验证软件包,以确保其实际上是空的:
drwxr-xr-x root/root         0 2022-10-31 11:58 ./

安装软件包:`apt install ./fake-ubuntu-advantage-tools.deb`
The following packages will be REMOVED:
  ubuntu-advantage-tools
The following NEW packages will be installed:
  fake-ubuntu-advantage-tools
0 upgraded, 1 newly installed, 1 to remove and 1 not upgraded.

没有更多的广告! 奖励:我在Github上上传了一个页面,上面有额外的Ubuntu垃圾邮件防范步骤这里,来摆脱MOTD垃圾邮件等。

你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人能够确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community
这个解决方法不再有效。 - Erkin Alp Güney
1@ErkinAlpGüney 你能详细说明一下吗?对我来说运行得很好。 - Greg Chabala
我自己仍然在22.10上使用这种方法。 - Skye
注意 - 有一个请求将链接更改为waybackmachine互联网档案。我已经拒绝了这个编辑请求,因为该页面的存档版本不允许用户下载软件包,因此下载链接没有用处。 - Skye
它可以工作,但也会卸载一些软件,比如gnome-softwarevanilla-gnome-desktop等等。试图安装它们时,会不知怎么地重新安装ubuntu-advantage-tools - wvengen
2@wvengen gamemanj 发现了一个新的解决方法,我已经更新了指南,并附上了更新包的链接。 - Skye

strace表明它来自这里:

33812 openat(AT_FDCWD, "/var/lib/ubuntu-advantage/messages/apt-pre-invoke-no-packages-apps.tmpl", O_RDONLY) = 3
33812 read(3, "Try Ubuntu Pro beta with a free "..., 8191) = 111

所以:

sudo rm /var/lib/ubuntu-advantage/messages/*.tmpl

3重新启动后,消息会再次出现,所以这个“修复”只是暂时的。也许有没有办法使它更加持久一些呢? - Scotty_Trees
@Scotty /var/lib 是用于存储程序的"变量状态信息",所以可能有一个单独的配置文件在其他地方,也许在 /etc 目录下。参考 如何在 SSH 连接到 Ubuntu 机器时禁用广告 - wjandrea
是否要通过/etc/rc.local删除这些文件? - Waxrat
就我所知,我重新启动了我的Ubuntu主机,那些文件并没有重新出现。 - Waxrat
3消息最终恢复。 显然由「/usr/lib/python3/dist-packages/uaclient/messages.py」创建。 搜索「SS_LEARN_MORE」并将其更改为「SS_LEARN_MORE = ""」。 - Waxrat
对于 TRY_UBUNTU_PRO_BETA ,请做同样的处理。 - Waxrat
把命令粘贴到crontab里面就行了,嘿嘿;-) - Rinzwind
@WaxratI 我在想这条消息是否是在升级某个软件包后出现的,比如 ubuntu-advantage-tools 本身。 - Lethargos
很可能是uaclient/messages.py的升级导致了广告的出现。在我按照上述描述编辑了messages.py之后,广告就不再出现了。 - Waxrat

我会只做这个:
apt-get  --assume-yes  --purge  remove  ubuntu-advantage-tools

3这似乎是最好的答案。当您移除此软件包时,它还会移除其他不需要的品牌软件包,如"ubuntu-advantage-tools* ubuntu-minimal* ubuntu-server* update-manager-core* update-notifier-common*"。如果需要的话,您可以将它们重新添加,而无需引入工具软件包。 - xrobau
2很遗憾,如果您想安装ttf-mscorefonts-installer软件包,它将自动安装update-notifier-common和最终的ubuntu-advantage-tools。总结起来,唯一的方法就是完全删除ttf-mscorefonts-installer才能摆脱广告。 - Cyril Chaboisseau

您还可以在以下网址提出投诉: https://ubuntu.com/legal/data-privacy/enquiry 事实上,没有简单的方法关闭这些消息可能违反了许多国家的数据保护法规。
例如,在英国,未经事先同意并给予您拒绝的机会,向任何服务的用户进行营销是非法的。

5我不喜欢这个,但我不认为在英国是非法的(虽然我不是律师)。这不是直接营销,因为它是系统生成信息的一个功能。它不是有针对性的;直接营销(未经同意是被禁止的)指的是保留用户数据库并给他们发送电子邮件之类的行为。这是不同的,你可以选择停止使用操作系统来退出 - 不像收到未经请求的邮件。但我同意 - 投诉,因为这不符合Ubuntu的精神。 - Will
1例如在英国,未经事先同意并给予你拒绝的机会,向任何服务用户进行营销是违法的。我认为Ubuntu通知现有用户可以免费获得额外支持,并不违反之前你同意支付费用的约定。 - Jo-Erlend Schinstad
1这是给每个人的同样信息;这与数据隐私无关。 - bfontaine

看起来 MOTD 头文件相当静态,所以我只是:
echo 'rm -f /etc/update-motd.d/88-esm-announce' >> /etc/update-motd.d/00-header

1一个重复的答案。 - David