Snap 商店待更新

Cos*_*dis 373 update-manager snap snap-store

“Snap Store 等待更新”是怎么回事?

在此输入图像描述

use*_*733 544

有几件事正在发生。

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

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

    • 关闭窗口不足以终止应用程序。

    • 一种方法:在命令行上运行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 天。

对于大多数应用程序来说,这都可以正常工作。您退出应用程序,几个小时后会突然更新应用程序(它每天检查几次)。下次您打开该应用程序时,您甚至不会注意到它已更新。伟大的!

但有些申请的开放时间很长,超过了 14 天的期限。就像笔记本电脑上的网络浏览器被关闭/暂停而不是退出/重新启动一样。不幸的是,当 14 天的窗口期满时,snapd 将终止该应用程序以实施升级。对于用户来说,这看起来就像 Firefox 意外崩溃,丢失了他们正在做的任何事情。

  • Snapd 必须刷新快照。这是原始设计的遗产;snaps 最初是为手机和物联网设备设计的,这些设备必须可靠地工作并且必须可靠地更新而无需用户输入。如果您知道如何禁用它,您可以禁用它......但这对大多数用户来说是一个坏主意 - 禁用更新意味着没有安全补丁和不安全的应用程序。

第三,我们来谈谈为什么您现在突然收到这些通知

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

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

最后,还有一个明显的问题:为什么这不是自动的?或者也许为什么 snapd 在打扰你之前不下载更新?

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

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

  • 应用程序 *snap-store* 可以从命令行关闭。执行 `$ snap-store --quit` 然后 `$ sudo snap refresh` 将起作用。 (37认同)
  • 这里的关键点非常简单。如果您退出它,snap 会自动重新启动,并且它会在您启动时启动。当该软件正在运行时,它无法更新该软件。所有这些答案都反映出,需要发生的是 snap 需要停止,然后您可以从 cli 使用它来更新自身。或者,您可以将其保留在自己的设备上,(我强烈怀疑)一两周后它会强制自行更新。 (2认同)
  • @Daniel 将您的建议添加到答案中。谢谢你! (2认同)

Vin*_*ris 127

我遇到了同样的问题,通知显示涉及的快照是快照存储。

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

sudo snap refresh snap-store
error: cannot refresh "snap-store": snap "snap-store" has running apps (ubuntu-software), pids:
       2452
Run Code Online (Sandbox Code Playgroud)

然后在终端中杀死该进程并再次运行它:

kill 2452
sudo snap refresh snap-store
Run Code Online (Sandbox Code Playgroud)

它应该会成功。

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

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

  • 我假设它在检查快照更新时始终运行。也许这是一个死锁,快照存储的更新应该以其他方式处理。 (2认同)

小智 50

对我有用:

  1. 在系统监视器上杀死“snap”
  2. sudo apt update && sudo apt upgrade
    
    Run Code Online (Sandbox Code Playgroud)
  3. sudo snap refresh
    
    Run Code Online (Sandbox Code Playgroud)

  • 或killall snap-store (6认同)