Snap Store 的待更新

Snap Store 的待更新

‘Snap Store 待处理更新’ 是什么意思?

在此处输入图片描述

答案1

有几件事发生了。

第一的, 让我们来谈谈让通知消失的最简单方法

  1. 退出应用程序 — 在本例中为 snap-store(又名 Ubuntu 软件)。由于 snap-store 在登录时自动启动,您可能不记得您已打开它...但您确实打开了它。

    • 关上窗户是不够的终止该申请。

    • 一种方法:在命令行中运行snap-store --quit

    • 另一种方法:打开 Ubuntu Software,查看顶部栏,在顶部栏左侧找到“Ubuntu Software”。单击它,然后选择“退出”。 在此处输入图片描述

  2. 运行sudo snap refresh。让命令完成。

    • 如果仍然弹出提示应用程序需要刷新,而不是刷新,则运行sudo snap refresh <application-name>
      该命令的输出将返回导致阻塞的 PID。
      使用kill <pid>删除阻塞。再次
      运行sudo snap refresh。这次应该可以正常工作。
  3. 现在可以安全地重新启动您的应用程序。

    • 如果您之前没有使用该应用程序,或者您不知道如何启动该应用程序,那么您可以放心地忽略此步骤。

第二, 让我们来谈谈为何发生

Snapd 会检测何时有新版本可用。如果应用程序当前正在运行,则 snapd 将抑制更新该应用程序最多 14 天。

对于大多数应用程序来说,这都很好用。你退出应用程序,几个小时后 snapd 就会更新应用程序(它每天检查几次)。下次打开应用程序时,你甚至不会注意到它已经更新了。太棒了!

但有些应用程序长时间处于打开状态,超过了 14 天的窗口期。例如笔记本电脑上的网络浏览器,它们被关闭/暂停,而不是退出/重新启动。不幸的是,当 14 天的窗口期到期时,snapd 将终止该应用程序以实施升级。对于用户来说,这看起来像是 Firefox 意外崩溃,丢失了他们正在做的一切。

  • Snapd 必须刷新 snap。这是原始设计的遗留问题;snap 最初是为手机和物联网设备设计的,它们必须可靠地工作,并且必须在没有用户输入的情况下可靠地更新。如果你知道如何禁用它,你可以禁用它……但对于大多数用户来说,这不是一个好主意——禁用更新意味着没有安全补丁和不安全的应用程序。

第三,让我们来谈谈你为什么突然立即获取这些通知

Snap 开发人员对这两个选择(终止应用程序以强制升级 - 或完全禁用升级)不满意,因此他们创造了更好的道路:在方便时提醒用户退出应用程序。这就是您看到的通知。它是 Ubuntu 22.04 中的新功能(默认启用)。

  • 如果您忽略它,那么当倒计时达到零时,snapd 将终止应用程序并自动刷新该快照。

最后,还有一个显而易见的问题:为什么这不是自动的?也许为什么 snapd 没有下载更新唠叨你?

嗯,在 Ubuntu 23.04 及更新版本中它是自动的。但对于 22.04 用户来说,该功能太新了。

  • 遇到此问题的大多数人只是以前没有使用过长寿命的 Snap 打包桌面应用程序。这是一个已知问题,许多开发人员正在努力解决它。欢迎您帮助他们。

答案2

我遇到了同样的问题,通知显示所涉及的 snap 是 snap-store。

如果你在终端运行此命令,你将获得一个进程 ID (PID):

sudo snap refresh snap-store
error: cannot refresh "snap-store": snap "snap-store" has running apps (ubuntu-software), pids:
       2452

然后在终端中终止该进程并再次运行:

kill 2452
sudo snap refresh snap-store

而且它应该会成功。

目前评分最高的答案建议你正在运行或最小化它,但在我看来它只是在没有用户启动它的情况下运行,并且它没有在 Dock 中显示正在运行。在我看来,这看起来像是一个错误。如前所述,它应该在 14 天后通过终止应用程序自行修复,如果你正在使用它,这可能会带来不便。

似乎这项工作仍在进行中,因此可能需要一些耐心,但如果您没有耐心,请按照此处所述提交错误: https://help.ubuntu.com/community/ReportingBugs

答案3

对我有用:

  1. 在系统监视器上关闭“snap”
  2. sudo apt update && sudo apt upgrade
    
  3. sudo snap refresh
    

答案4

这对我有用:

sudo snap remove snap-store
sudo snap refresh
sudo snap install snap-store

我需要在 snap refresh 前输入 sudo 才能让它工作。这是唯一对我有用的选项。我还必须启动 Ubuntu 软件应用程序两次。

这也清除了 Snap Store 待处理的更新,由于 Snap Store 正在运行,因此无法更新。

相关内容