Lux*_*voo 6 windows-subsystem-for-linux
我安装了 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.
Run Code Online (Sandbox Code Playgroud)
所以该lxd命令具有相同的输出。我还通过添加启用了 systemd
[boot]
systemd=true
Run Code Online (Sandbox Code Playgroud)
到/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
Run Code Online (Sandbox Code Playgroud)
并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)
Run Code Online (Sandbox Code Playgroud)
@EduGomezEscandell比我先一步,但也更新了这个答案,请注意这已在最新的 Snapd 中修复:
sudo apt update && sudo apt upgrade -y
Run Code Online (Sandbox Code Playgroud)
(或者 Edu 提到的专门针对 Snapd)。更新后,Snap/Snapd 应该可以在最新的 WSL/Systemd 版本下正常工作。
请记住恢复任何解决方法(例如下面)。Awsl --shutdown还需要让你恢复binfmt_misc正常。
历史信息:
正如@olem 的回答所提到的,这似乎确实是由于有意的 Snap 更改所致,该更改旨在在 WSL 上“优雅地失败”。对我来说,这似乎只是 Ubuntu 22.04 和 Snap/Snapd 版本 2.57 上的问题。
在 WSL 中首次安装时,Ubuntu 22.04 附带的版本目前是 2.55,因此snap首先可以开箱即用,然后在第一个sudo apt update && sudo apt upgrade.
即使完全更新后,Ubuntu 20.04 上似乎也不会出现该问题,因为最新版本是 2.55.5。
根据Launchpad bug,这个问题是在最近修复了一个单独的bug 时出现的。
旁注:也在这个 WSL 问题中进行跟踪,尽管我们知道这实际上并不是 WSL 本身的问题。
实施临时解决方法
在这个 Github 评论中找到了一个很好的解决方法:
echo ":windowsexe:M::\x4d\x5a::/init:PF" | sudo tee -a /etc/binfmt.d/windowsexe.conf
Run Code Online (Sandbox Code Playgroud)
然后退出 Ubuntu wsl --terminate <distroname>(在 PowerShell 或 CMD 中),然后重新启动。
该文件在启动时进行处理,并使用不同的名称“重新注册”WSL Interop 支持(允许您运行 Windows 二进制文件),从而阻止 Snap 用于检测它在 WSL 下运行的方法。
在 Launchpad 上“赞成”该问题
在 Ubuntu Launchpad 上创建一个帐户,然后单击问题页面顶部的“也影响我”链接。
监控状态
您可以在主要 Launchpad bug处监视状态。
虽然修复已合并,但仍需要将其推送到 22.04 更新通道。通过在 Launchpad 上观察此 WSL 错误,修复程序首先需要进入jammy-proposed,其中至少有一个用户需要测试并确认修复程序,然后才能将其发布到-updates。
不过,老实说,我不确定我们如何进行下一步。我会尝试研究一下。
重要提示: 在系统上更新包含修复程序的更新后的 Snapd 后,恢复临时解决方法
请确保,当此错误的修复程序被推送到 Ubuntu 更新通道时,您将其删除,/etc/binfmt.d/windowsexe.conf以便您返回允许 WSL 为您设置此问题。随着时间的推移,该方法已略有变化,您需要确保从长远来看,您使用的是 WSL 期望的设置。
| 归档时间: |
|
| 查看次数: |
16507 次 |
| 最近记录: |