如何在Ubuntu 22.04上启用WSL互操作性?

我看到了相关的问题,但没有一个能回答我的问题。我问这个问题是因为每当我从命令行调用xdg-open时,都会出现以下错误提示我启用WSL互操作性。我尝试打开一个PNG文件和一个PDF文件。两者都给我显示相同的消息。
我使用的是Ubuntu 22.04。
$ xdg-open IMG_20220629_131736841.jpg 
$ grep: /proc/sys/fs/binfmt_misc/WSLInterop: No such file or directory
WSL Interopability is disabled. Please enable it before using WSL.
grep: /proc/sys/fs/binfmt_misc/WSLInterop: No such file or directory
[error] WSL Interoperability is disabled. Please enable it before using WSL.
/usr/bin/wslview: line 216: /mnt/c/Windows/System32/reg.exe: No such file or directory
/usr/bin/wslview: line 308: [: -ge: unary operator expected
[error] This protocol is not supported before version 1903.

2嗯,你可以在WSL2上使用xdg-open吗?而不是xdg-open-wsl?你在WSL2中有桌面吗? - Rinzwind
@Rinzwind 显然,如果安装了wslu软件包(在22.04版本中需要PPA),是可以的。这不是我自己进行过多实验的事情,但显然安装wslu软件包会将wslview注册为xdg-open的处理程序。 - NotTheDr01ds
Interop应该默认启用,除非您在/etc/wsl.conf中明确关闭它。然而,Systemd启用的脚本经常会干扰Interop。您是否使用任何方法尝试在WSL下运行Ubuntu中的Systemd? - NotTheDr01ds
Rinzwind:我的系统是一台只安装了Ubuntu操作系统的笔记本电脑。 - TheGeeko61
NotTheDro1ds: 我没有直接关闭任何东西... 如果安装软件包导致了这样的变化,我不知道。我想启用它的唯一原因是为了能够再次使用xdg-open。 - TheGeeko61
我甚至没有任何Windows软件。 - TheGeeko61
@TheGeeko61 啊,你在回复时忘记在我的名字前面加上@符号,所以我没有收到通知 :-(。如果是这样的话,我会看到你实际上并没有运行WSL本身。在这种情况下,这个很可能是同样的问题。一些Ubuntu软件包(至少gimp-help-en)错误地将wslu作为依赖项,即使在非WSL系统上也是如此。只需运行sudo apt purge wslu应该就可以解决问题了。 - NotTheDr01ds
1这个回答解决了你的问题吗?Ubuntu 22.04(全新安装)桌面快捷方式无法打开 - NotTheDr01ds
在与Ubuntu发生了许多异常情况之后,我转而使用了Fedora。在与Ubuntu共度了十多年之后,是什么原因让我做出了这个选择呢?是因为在Fedora上使用xdg-open命令时没有任何问题。 - TheGeeko61
@TheGeeko61 啊,可惜。这只是 (很有可能) gimp-help-en 包的一个不幸的错误,而不是 Ubuntu 本身的问题。但我可以理解您因为无法解决的错误而需要转换系统的需求。记得在回复时在名字前面加上@标签。如果我六周前看到了,我可能会给您提供(很可能的)解决方案。 - NotTheDr01ds
@NotTheDr01ds 我决定在很多个月之后离开这个船,并不是因为这一个小插曲。我已经遇到了超过10次Ubuntu无法正常运行的情况。其中一个例子是,当我安装一个特定的软件包时出现了错误。我联系了代码的所有者,他们告诉我,在打包他们的应用程序时,Ubuntu包含了过时的库... 一系列小问题导致了巨大的头痛,让我无法对Ubuntu的软件包产生信任感。 - TheGeeko61
2个回答

在Kubuntu 22.04上运行以下命令,在新升级的Plasma版本5.25.5上有效:
sudo apt purge wslu

删除文件/usr/share/applications/wslview.desktop
我在新的Ubuntu 22.04.1 LTS版本上也遇到了这个问题。
我删除了文件/usr/share/applications/wslview.desktop,然后xdg-open就按预期工作了。
我不知道具体发生了什么,但似乎wslview.desktop启动器是用于在Windows WSL中使用Ubuntu的。但由于某种原因,它会在每次调用xdg-open时启动。当它被移除后,xdg-open将使用与URL相关联的另一个正确的启动器。

1最好通过sudo apt purge wslu彻底清除它。有关详细信息,请参阅此问题 - NotTheDr01ds