我安装了 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 问题中