WindowsでUbuntu(WSL)を実行すると、BunをインストールしようとするとSystemOutdatedエラーが発生します。

WindowsでUbuntu(WSL)を実行すると、BunをインストールしようとするとSystemOutdatedエラーが発生します。

インストールしようとしています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

bunWSL1/Ubuntu 20.04 で実行しようとすると、この問題を再現できます。ただし、WSL2は少なくともこのコマンドではうまく機能します。

を実行してバージョンを確認してくださいwsl.exe -l -v

WSL1は実際のLinuxカーネルを提供しませんが、LinuxとWindows API間のシステムコール変換層として機能する擬似カーネルを提供します。これは本当に印象的ですが、100%の実装にはまだ行きません。これ最後に見たレポートLTPテストの約73%がWSL1を通過したことがわかりました。

低レベルで聞こえるかもしれませんが、これらのAPIは機能の99%以上を提供しているようです。最も一般的な開発ツールと言語それから。

しかし、Bunのような(明らかに)非常に最適化された新しいランタイムは、WSL1で実装されていない機能に頼ることができることは驚くべきことではありません。 WindowsとLinuxのアーキテクチャは非常に異なるため、ネットワークスタックは確かにWSL1とLinuxカーネルが異なる大きな領域です。私たちが見たエラーは、問題がこの分野にあることを明らかに示しています。

システムでWSL2を実行できる場合は、WSL2インスタンスでBunを実行する必要があります。必要に応じて(WSL1にはいくつかの利点があります)、既存のWSL1 Ubuntuを他の目的に維持または完全に変換できます。

バラよりこの回答何よりも、既存の展開をバックアップして複製する方法の詳細をご覧ください。この--import手順を実行するときに指定します--version 2

または(オプション)バックアップ後wsl --set-version <distro_name> 2

関連情報