如何更新所有 Snap 软件包?

Ale*_*era 246 ubuntu-core snap

我知道我可以使用

sudo snap refresh <package>
Run Code Online (Sandbox Code Playgroud)

但是有没有办法更新所有快照,比如

sudo apt dist-upgrade
Run Code Online (Sandbox Code Playgroud)

Zyg*_*cki 342

sudo snap refresh 
Run Code Online (Sandbox Code Playgroud)

会这样做。它是snapd2.0.8 的一部分,于2016 年 6 月 13 日登陆xenial-updates.

snap refresh --list
Run Code Online (Sandbox Code Playgroud)

只列出更新而不刷新包。

snap info <snap name>
Run Code Online (Sandbox Code Playgroud)

可以显示哪些版本可用于特定包。

  • @Boris,如果你不包含 `sudo`,`snap` 会提示你输入密码,所以这不是完全必要的。 (8认同)
  • 您需要执行“sudo snap refresh” (3认同)
  • @RickyNelson 在我的 18.04 上,它确实在不使用 `sudo` 的情况下提示我 (2认同)

chr*_*vdb 48

根据Snap 教程Snap 每天在后台自动更新一次。

  • 但是,如果您不关闭该应用程序,它将不会更新,并且您将收到每日更新通知。 (3认同)
  • 然而,我今天检查 Firefox,它显示“系统管理员禁用了更新”(很奇怪,因为我是唯一的用户,而且三天前我刚刚安装了操作系统)。“快速刷新 firefox”是获取最新安全补丁的唯一方法。 (2认同)
  • 仍然无法解决那个烦人的更新问题。我们已经 5 年后了(或者 1 年后,具体取决于评论)。snap 已推出到 Mayer 公共发行版,但我仍然需要在 3 个地方进行更新并关闭应用程序。曾经这就是linux无需关闭(重启)升级的一大卖点。 (2认同)

小智 12

尝试snap运行sudo

sudo snap refresh
Run Code Online (Sandbox Code Playgroud)


小智 12

对我来说,问题在于快照商店。它在启动时启动,因此永远无法自我更新。

所以我跑去验证快照存储是否是问题所在

 sudo snap refresh 
 snap refresh --list
 snap refresh --time
Run Code Online (Sandbox Code Playgroud)

修复方法是终止该进程,然后更新:

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


use*_*733 10

通常,您无需执行任何操作。

snapd,在 Ubuntu 安装中,会自动检查更新。这是快照的一个关键特性。

以下是如何确定 snapd 自动检查更新的频率:(来源

$ snap refresh --time
timer: 00:00~24:00/4        <------ "/4" means refresh every 4 hours.
last: today at 17:15 CDT
next: today at 21:45 CDT
Run Code Online (Sandbox Code Playgroud)


小智 5

试试这个/usr/bin/update-snaps

#!/bin/bash
ROOT_UID="0"

#Check if run as root
if [ "$UID" -ne "$ROOT_UID" ] ; then
        echo "You must be root to do that!"
        exit 1
fi

snap list | awk -F" " '{if ($1 && NR>1) { system("snap refresh " $1 " 2>/dev/null") }}'
Run Code Online (Sandbox Code Playgroud)

  • 这不再是必要的了。 (5认同)