割と困ったので、備忘として残します。
環境
- windows10 22H2
- GitHub Desktop Version 3.3.8 (x64)
事象
作成したコードをGitHub Desktop経由でコミットしようとすると、「<3>WSL (9) ERROR: 」のMSGが大量に返ってくる。
- 一点のみ抜粋
<3>WSL (9) ERROR: CreateProcessEntryCommon:505: Create process not expected to return
エラーMSGについて
このエラーメッセージは、GitHub Desktopを使用している際にWindows Subsystem for Linux (WSL)との間で問題が発生していることを示しています。
具体的には、WSLがWindowsのファイルパスを適切に処理できていないようです。
エラーメッセージの内容を分析すると、以下の問題が考えられます:
パスの変換失敗:
WSLはWindowsのファイルシステムとLinuxのファイルシステムの間でパスを変換する必要がありますが、エラーメッセージによると、多くのWindowsパス(C:\Users\myname…など)の変換に失敗しています。
getpwuid(0)関数の失敗:
この関数はユーザー情報を取得するために使用されますが、エラーが示すように、何らかの理由で失敗しています。
これは、WSLが現在のユーザーの情報を適切に取得できていないことを意味します。
execvpe /bin/bashの失敗:
WSLがLinuxのbashシェルを起動しようとして失敗しています。これは、WSLの設定やインストールに問題がある可能性があります。
ChatGPT4
原因
WSLにて、dockerのサブシステムしか存在しなかった。
wsl --list の実行結果
Linux 用 Windows サブシステム ディストリビューション:
docker-desktop-data (既定)
docker-desktop
原因は不明ですが、ubuntuのディストリビューションがなくなっていた。
対策
ubuntuをインストールして、規定に設定
ここで設定するユーザーは、windowsのユーザーと同一で問題ありません。
wsl --install を実行し、ubuntuをインストール
インストール中: Ubuntu
Ubuntu がインストールされました。
Ubuntu を起動しています…
Installing, this may take a few minutes…
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.133.1-microsoft-standard-WSL2 x86_64)
★exitで抜けて、インストール確認後規定に設定
wsl --setdefault Ubuntuを実行すると「この操作を正しく終了しました。」をリターン。
wsl --listで規定がubuntuになっているか確認
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
docker-desktop
docker-desktop-data
- 参考ドキュメント
WSL を使用して Windows に Linux をインストールする方法
上記にてエラーが出なくなり、コミットが出来るようになりました。
最後に
最近はWindowsも開発で便利で素敵なんですが、WSLの設定でこけてしまうことが多いのでやはりMacか・・・と思ってしまいますね。
以上、どなたかの役に立てば幸いです。