Snaps 不会安装在 Ubuntu 18.04 中

Sci*_*Rex 22 software-installation snap 18.04

我全新安装了 Ubuntu 18.04,当我尝试从 Ubuntu 软件安装任何快照时,我总是收到消息too early for operation, device not yet seeded or device model not acknowledged。我对 Ubuntu 还很陌生,但我知道如何使用谷歌搜索并按照说明进行操作。我找不到解决此问题的方法。有没有人看到这个?

在此处输入图片说明

小智 20

我遇到了同样的问题,我尝试了上面的 jq 方法,但它对我不起作用。然后我发现只需清除/重新安装 snapd 包就可以在我的测试中解决这个问题。

$ sudo apt purge snapd
$ sudo apt install snapd
Run Code Online (Sandbox Code Playgroud)


小智 8

如果您在 Windows 上的 Hyper-V 中运行 Ubuntu,此解决方案帮助我了解真正的问题是什么以及如何在不对操作系统进行过多脑部手术的情况下修复它。

显然,seed.yml 文件指定要在全新操作系统安装上安装的应用程序。

如果我们删除卡住的那些然后手动安装它们,这有效。

脚步:

  1. 将您的/var/lib/snapd/seed/seed.yaml文件更改为如下所示:

    snaps:
    -
    name: core
    channel: stable
    file: core_6673.snap
    -
    name: gtk-common-themes
    channel: stable/ubuntu-18.04
    file: gtk-common-themes_1198.snap
    -
    name: gnome-3-26-1604
    channel: stable/ubuntu-18.04
    file: gnome-3-26-1604_82.snap ```
    
    Run Code Online (Sandbox Code Playgroud)

    基本上,我正在删除导致快照任务卡住的所有条目。

  2. 中止当前运行的 snap 任务并重新启动服务:

    • snap abort --last=seed
    • sudo systemctl restart snapd
    • 继续运行snap tasks --last=seed以查看快照任务的进度并等待所有任务“完成”
  3. 手动安装您从 中删除的任何应用程序/var/lib/snapd/seed/seed.yaml,它们可能包括:

    • gnome-calculator
    • gnome-characters
    • gnome-logs
    • gnome-system-monitor

    重新安装这些的命令是:

    snap install gnome-calculator gnome-characters gnome-logs gnome-system-monitor
    
    Run Code Online (Sandbox Code Playgroud)


小智 2

我现在在全新安装 Ubuntu 19.04 时遇到了完全相同的问题。

\n\n

同样的错误,提到的修复根本没有帮助。

\n\n
snap 2.38+19.04\nsnapd 2.38+19.04\nseries 16\nubuntu 19.04\nkernel 5.0.0-13-generic\n
Run Code Online (Sandbox Code Playgroud)\n\n

重新安装 snapd 对我来说被困了将近一个小时,显然它不会移动,除非该服务切换状态:

\n\n
snapd.seeded.service - Wait until snapd is fully seeded\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是 ubuntu 的全新安装:-D 基本上只是全新安装 + 更新,所以他们的主商店无法工作真是可笑...将再给它 1 个小时,然后再次尝试重新安装整个系统。

\n\n

附:

\n\n

Flatpak 可以工作,只是说

\n\n

PS2:\n刚刚尝试全新安装 18.04,我们再次开始:

\n\n
snapd.seeded.service - Wait until snapd is fully seeded\n   Loaded: loaded (/lib/systemd/system/snapd.seeded.service; enabled; vendor preset: enabled)\n   Active: activating (start) since Sun 2019-05-12 10:07:11 CEST; 3min 10s ago\n Main PID: 48141 (snap)\n    Tasks: 9 (limit: 4617)\n   CGroup: /system.slice/snapd.seeded.service\n           \xe2\x94\x94\xe2\x94\x8048141 /usr/bin/snap wait system seed.loaded\n\nkv\xc4\x9b 12 10:07:11 stefan-ubuntu systemd[1]: Starting Wait until snapd is fully seeded...\n
Run Code Online (Sandbox Code Playgroud)\n\n

只有 3 分钟,但现在我想起来,我怀疑他们的 API 存在问题,或者只是 snapd 版本损坏,因为如您所见,两个安装上的版本是相同的:

\n\n
snap    2.38+18.04\nsnapd   2.38+18.04\nseries  16\nubuntu  18.04\nkernel  4.15.0-47-generic\n
Run Code Online (Sandbox Code Playgroud)\n\n

不要更新您的 SNAP :-)

\n


van*_*ium 1

尝试此处描述的方法。这实质上刷新了配置文件。

打开终端并一一发出以下命令(提示:三次单击一行以选择它,然后将其复制并粘贴到终端中)。在 Ubuntu 上,您需要安装 jq 命令,因此我添加了一个命令来执行此操作。另外,我添加了一个命令来备份原始文件,以便在无法解决问题时可以恢复之前的情况。

sudo apt install jq
sudo cp /var/lib/snapd/state.json /var/lib/snapd/state.json-old 
sudo systemctl stop snapd
sudo cat /var/lib/snapd/state.json | jq 'delpaths([["data", "auth", "device"]])' > state.json-new
sudo cp state.json-new /var/lib/snapd/state.json
sudo systemctl start snapd
Run Code Online (Sandbox Code Playgroud)

可以肯定的是,重新启动系统并尝试一下,问题就解决了。如果没有,您可以通过复制回旧文件、删除备份和新文件以及选择再次删除命令来恢复到以前的状态:

sudo cp state.json-old /var/lib/snapd/state.json
sudo rm state.json-*
sudo apt remove jq ;  sudo apt autoremove
Run Code Online (Sandbox Code Playgroud)