我尝试安装bun
https://bun.sh/在我的 Windows 计算机上并在 WSL 上使用 Ubuntu 20.04。
运行curl https://bun.sh/install | bash
并尝试运行命令后,出现以下错误:
coding@DESKTOP-PO2H28R:~$ bun create app
Fetching package.json... error: Failed to initialize network thread: SystemOutdated.
我跑了apt-get update
,apt-get update
之前没有解决问题。我也跑了,wsl --update
什么也没做。有谁知道如何解决这个问题?
答案1
bun
当尝试在 WSL1/Ubuntu 20.04 下运行时,我可以重现此问题。然而,WSL2 工作得很好,至少对于这个命令来说是这样。
通过运行检查您的版本wsl.exe -l -v
。
WSL1 不提供真正的 Linux 内核,而是提供一个伪内核,充当 Linux 和 Windows API 之间的系统调用转换层。这确实令人印象深刻,但距离 100% 实施还有很长的路要走。这我上次看到的报告显示大约 73% 的 LTP 测试在 WSL1 上通过。
这听起来可能很低,但这些 API 似乎提供了 99% 以上的功能最常见的开发工具和语言当时。
然而,像 Bun 这样的新的、(显然)经过极其优化的运行时可能依赖于 WSL1 中未实现的东西,这并不奇怪。网络堆栈绝对是 WSL1 和 Linux 内核不同的一个大领域,因为 Windows 和 Linux 架构有很大不同。我们看到的错误明确表明问题出在该区域。
如果您的系统能够运行 WSL2,那么您将需要在 WSL2 实例下运行 Bun。如果您愿意(WSL1 有一些优点),您可以保留现有的 WSL1 Ubuntu 用于其他目的,也可以将其完全转换。
看这个答案(除其他外)了解如何备份和克隆现有发行版的一些详细信息。当您执行该--import
步骤时,请指定--version 2
.
或者,在(可选)备份后,使用wsl --set-version <distro_name> 2
.