如何防止 snap-store 自动启动

如何防止 snap-store 自动启动

就像你们许多人一样,我收到了令人讨厌的通知,说有一个 snap-store 的更新正在等待处理:

等待“snap-store”更新 snap

关闭应用程序以避免中断(剩余 13 天)

有很多建议那个问题至于如何让通知消失,但是一旦 snap-store 有新的更新,它就会再次发生。

问题

如何在不卸载 snap-store 的情况下防止它在我登录时自动启动?

问题原因

据我所知,snap-store 自动启动的原因是因为当前版本有一个自动启动文件,位于~/snap/snap-store/current/.config/autostart/ubuntu-software-service.desktop

~/snap/snap-store/current只是一个指向当前安装的 snap-store 版本的符号链接:

ls -ld ~/snap/snap-store/current
lrwxrwxrwx 1 user user 3 Sep 28 08:43 /home/user/snap/snap-store/current -> 599

我不确定自动启动文件是何时添加的,但我可以看到从版本 41.3-66-gfe1e32544+(修订版 582)开始,该文件就不存在了:

ls ~/snap/snap-store/582/.config/autostart
ls: cannot access '/home/user/snap/snap-store/582/.config/autostart': No such file or directory

它在修订版 592 中:

$ ls ~/snap/snap-store/*/.config/autostart
/home/user/snap/snap-store/592/.config/autostart:
ubuntu-software-service.desktop

我尝试过的方法

  • 这个答案建议为了防止 snap 在启动时启动,需要禁用该服务。但是没有 snap-store 服务。

  • 阻止应用程序自动启动的正常方法是创建一个自定义自动启动文件,该文件应优先于系统文件。所以我这样做了:

    $ cat ~/.config/autostart/ubuntu-software-service.desktop 
    [Desktop Entry]
    Name=Ubuntu Software
    Exec=snap-store.ubuntu-software --gapplication-service %U
    OnlyShowIn=GNOME;Unity;
    # Disable autostart
    Hidden=true
    

    不幸的是,它不起作用。

  • 我尝试在 /etc/profile.d/ 中创建一个脚本来终止 snap-store,但它在登录之前、在 snap-store 启动之前运行,

当前的解决方法

cat ~/.config/autostart/stop-snap-store.desktop
[Desktop Entry]
Type=Application
Name=Stop Ubuntu Software
Exec=snap-store --quit
X-GNOME-Autostart-Delay=30
OnlyShowIn=GNOME;Unity;
NoDisplay=True

或者为所有用户进行更改,将 stop-snap-store.desktop 放入 /etc/xdg/autostart/

答案1

你太接近了!

Snap 自动启动不在~/.config/autostart/
它们位于~/snap/<application>/current/.config/autostart/
参考

我们来看看 snap-store 的自动启动:

$ ls -lah ~/snap/snap-store/current/.config/autostart/
lrwxrwxrwx 1 me me   66 Nov 26 08:24 ubuntu-software-service.desktop -> /snap/snap-store/current/autostart/ubuntu-software-service.desktop

自动启动是指向 /snap 中文件的链接。我们无法编辑该文件(/snap 中的文件是只读的)
但您可以删除(或恢复)该链接。

REMOVE:  $ rm ~/snap/snap-store/current/.config/autostart/ubuntu-software-service.desktop
RESTORE: $ ln -s /snap/snap-store/current/autostart/ubuntu-software-service.desktop ~/snap/snap-store/current/.config/autostart/

Snapd 将在下次更新 snap 时重新生成链接,因此这不是一个永久的解决方案。不变性、自我修复和频繁更新是 snap 的关键特性。多年来,人们一直希望 Ubuntu 上有这些特性。

从根本上来说,Snap 中的自动启动是开发人员可配置的,并且这些开发人员定义限制了用户配置(再次强调,这是 Snap 长期以来所期望的功能)。

相关内容