Snap 已停止在 wsl 上工作?

Snap 已停止在 wsl 上工作?

我安装了 WSL2 预览版(因此我可以使用新的 systemd 支持)。我正在运行最新版本的 WSL Ubuntu(不是预览版),当我运行snap install <insert_program_here>或使用 snap 安装的任何程序(如 lxd)时,它都会返回

Interacting with snapd is not yet supported on Windows Subsystem for Linux.
This command has been left available for documentation purposes only.

因此该lxd命令的输出相同。我还通过添加以下代码启用了 systemd:

[boot]
systemd=true

/etc/wsl.conf

wsl -v返回:

WSL version: 0.70.4.0
Kernel version: 5.15.68.1
WSLg version: 1.0.45
MSRDC version: 1.2.3575
Direct3D version: 1.606.4
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22000.1098

snap --version返回:

snap                         2.57.4+22.04
snapd                        unavailable
series                       16
Windows Subsystem for Linux  -
kernel                       5.15.68.1-microsoft-standard-WSL2 (amd64)

答案1

@EduGomezEscandell打败我,而且还更新了这个答案,注意这个问题已在最新的 Snapd 中修复:

sudo apt update && sudo apt upgrade -y

(或者像 Edu 提到的那样专门针对 Snapd)。更新后,Snap/Snapd 应该可以在最新的 WSL/Systemd 版本下正常工作。

记得恢复任何解决方法(例如下面)。Awsl --shutdown也需要恢复binfmt_misc正常。


历史信息:

作为@olem 的回答提到,这似乎是由于故意对 Snap 进行更改,旨在在 WSL 上“优雅地失败”。对我来说,这似乎只是 Ubuntu 22.04 上的问题,Snap/Snapd 版本为 2.57。

Ubuntu 22.04 在 WSL 中首次安装时附带的版本目前是 2.55,因此snap一开始可以开箱即用,然后在第一次之后失败sudo apt update && sudo apt upgrade

即使完全更新,Ubuntu 20.04 上似乎也不会出现此问题,因为最新版本是 2.55.5。

根据启动板错误,当分离该错误最近已被修复。

附注:还被追踪这个 WSL 问题,尽管我们知道这实际上并不是 WSL 本身的问题。

如果遇到此问题,可以采取以下步骤:
  • 实施临时解决办法

    一个很好的解决方法是这个 Github 评论

    echo ":windowsexe:M::\x4d\x5a::/init:PF" | sudo tee -a /etc/binfmt.d/windowsexe.conf
    

    然后退出 Ubuntu wsl --terminate <distroname>(在 PowerShell 或 CMD 中),并重新启动。

    该文件在启动时进行处理,并使用不同的名称“重新注册” WSL Interop 支持(允许您运行 Windows 二进制文件),从而阻止 Snap 用来检测它在 WSL 下运行的方法。


  • 在 Launchpad 上对问题“点赞”

    在 Ubuntu Launchpad 上创建一个帐户,然后单击也影响到我问题页面顶部的链接。


  • 监视状态Monitor the status

    您可以在以下位置监控状态Launchpad 的主要错误

    虽然修复已合并,但仍需要将其推送到 22.04 更新频道。从观看这个 WSL 错误在 Launchpad 上,修复首先需要进入jammy-proposed,其中至少一名用户需要测试并确认修复之后才能发布到-updates

    不过,我真不知道该如何进入下一步。我会尝试研究。


  • 重要的在您的系统上更新带有修复程序的更新 Snapd 后,恢复临时解决方法

    确保当此错误的修复程序推送到 Ubuntu 更新频道时,您删除它,/etc/binfmt.d/windowsexe.conf以便您返回到允许 WSL 为您设置它。该方法随着时间的推移略有变化,您需要确保从长远来看,您正在使用 WSL 期望的设置。

答案2

有一个关于此问题的拉取请求这里

或者

看看这个论坛帖子这里

答案3

这是 snapd 2.57.4 的一个问题。今天发布了一个修复程序。只需执行

sudo apt-get -y update
sudo apt-get -y upgrade snapd

这会将您升级到 snapd 2.57.5,然后您就可以开始了。正如另一条评论中提到的,您可以查看讨论在这个 Github 问题中

相关内容