如何使用 Windows PowerShell 列出 Windows 中适用于 Linux 的 Windows 子系统中可用的所有发行版?

Bis*_*dhi 1 linux windows powershell windows-subsystem-for-linux

我从 Microsoft 商店安装了 WSL,并尝试使用以下命令获取发行版列表。

wsl.exe --列表 --在线

在此输入图像描述

但我收到以下错误。

无法从“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”获取列表分发。无法与服务器建立连接错误代码:Wsl/WININET_E_CANNOT_CONNECT

Bea*_*ans 5

在 Windows 10 上,我遇到了同样的问题。我刚刚执行了 wsl --update,所以我使用的是最新的 WSL 2。

我发现 DNS 服务器包含 2 个 ipv6 地址。

我可以在浏览器中打开https://raw.githubusercontent.com,并且可以从 wsl 命令行卷曲它,但从 Windows 命令提示符中,wsl --install Ubuntu失败并显示“无法获取列表分发”。

我怀疑这一切都与 DNS 名称解析为 IPv6 地址有关,curl 和浏览器可以处理但 wsl 子系统不能处理?

为了测试这一点,我在 Windows 主机文件 C:\Windows\System32\drivers\etc\hosts 中添加了一个条目,即: 185.199.110.133 raw.githubusercontent.com

并在新的命令提示符窗口中wsl -l -o按预期工作,即:

c:\> wsl -l -o
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.

NAME               FRIENDLY NAME
Ubuntu             Ubuntu
Debian             Debian GNU/Linux
kali-linux         Kali Linux Rolling
SLES-12            SUSE Linux Enterprise Server v12
SLES-15            SUSE Linux Enterprise Server v15
Ubuntu-18.04       Ubuntu 18.04 LTS
Ubuntu-20.04       Ubuntu 20.04 LTS
Ubuntu-22.04       Ubuntu 22.04 LTS
OracleLinux_8_5    Oracle Linux 8.5
OracleLinux_7_9    Oracle Linux 7.9
Run Code Online (Sandbox Code Playgroud)