Tips
新規の端末でWSLからVSCodeを起動したらgzipのエラーがでました。Ubuntu 22.04です。
user@DESKTOP-G8NGVRT:~/demo$ code . Installing VS Code Server for x64 (dfd34e8260c270da74b5c2d86d61aee4b6d56977) Downloading: 100% /usr/bin/gzip: 1: ELF ・・・: not found /usr/bin/gzip: 3: ・・・: not found /usr/bin/gzip: 4: Syntax error: "(" unexpected tar: Child returned status 2 tar: Error is not recoverable: exiting now tar is unable to read /home/user/.vscode-server/bin/dfd34e8260c270da74b5c2d86d61aee4b6d56977-1651407224.tar.gz. Either the file is corrupt or tar has an issue. There's a known WSL issue with tar on Ubuntu 19.10. See workaround in https://github.com/microsoft/vscode-remote-release/issues/1856. Reload the window to initiate a new server download.
何かSyntax errorが起きているようです。
issuesを見てもとても古い情報であまり役に立ちませんでした。
原因を確認するために、gzipのバージョンを確認すると
$ gzip -bash: /usr/bin/gzip: cannot execute binary file: Exec format error
何かバイナリが正しくないというエラーがでます。アーキテクチャが異なる場合に出るケースが多いですがx64です。
そこでWSLを確認するとバージョンが1です。これか?
C:\Users\user>wsl -l -v NAME STATE VERSION * Ubuntu-22.04 Running 1
再確認したところ原因は「仮想マシン プラットフォーム」が有効化されていないためバージョンが1でした。
少なくともUbuntu 22.04はWSLバージョン2でも動作が必須のようです。
また、WSL自体もアップデートしておきます。
管理者権限でwsl --update
を実行します。
C:\WINDOWS\system32>wsl --update 更新をチェック中... 更新をダウンロード中... 更新をインストール中... この変更は、次回の WSL 再起動時に有効になります。強制的に再起動するには、'wsl --shutdown' を実行してください。 カーネル バージョン: 5.10.102.1
あとはUbuntuのバージョンを2に変換します。
C:\Users\user>wsl --set-version Ubuntu-22.04 2 変換中です。この処理には数分かかることがあります... WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。
デフォルトのバージョンも2に変更しておきます。
C:\Users\user>wsl --set-default-version 2 WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください この操作を正しく終了しました。 C:\Users\user>wsl --status 既定の配布: Ubuntu-22.04 既定のバージョン: 2
これで準備が整いました。
あとはVSCodeを起動を起動すると問題なく起動します。