WSL2からVSCodeが起動しない場合の対処方法 (Command ‘code’ not found, but can be installed with: sudo snap install code)
WSL2のターミナル(Ubuntuなど)からVSCode (Visual Studio Code)を起動しようとすると、エラーとなる場合があります。
原因と対処方法についてまとめました。
WSL2でcodeコマンドを実行すると発生するエラー
Visual Studio Codeで編集するために特定のディレクトリで「code .」と実行した場合や単純に「code」と実行した場合に以下のようにエラーが発生してVSCodeが起動しない場合があります。
$ code .
Command 'code' not found, but can be installed with:
sudo snap install code
エラーの原因
WSL2側(Ubuntuなど)からWindows側のVisual Studio Codeの「code」へPathが通っていないため、「Command 'code’ not found」というエラーになっています。
通常WSL2のインストールや設定を進めるとWindows側のPATHの設定がWSL2側に引き継がれるため、codeへのPATHも通っているのですが、WSL2が正式対応する前からの利用者や何らかの理由でPATHの設定が有効になっていない場合に、このエラーが発生します。
WSL2からcodeを実行するための設定方法
WSL2のPATHにWindows側のVS Codeのパスを設定することで解決します。
WSL2からみたWindows側のVSCodeのパスを調べる
Windows側のデフォルトのVS Codeのインストールパスは次のようになっています。
C:\Users\[ユーザ名]\AppData\Local\Programs\Microsoft VS Code\bin
.bashrcを開く
ユーザディレクトリの直下の「.bashrc」ファイルを編集する
$ cd ~
$ vim .bashrc
WSL2ではWindows側のCドライブは「/mnt/c/」にマウントされています。
そのため、WSL2側のデフォルトのパスは次のようになります。
/mnt/c/Users/[ユーザ名]/AppData/Local/Programs/Microsoft VS Code/bin
.bashrcにPATHにVSCodeのパスを設定する
以下の内容を.bashrcに追記します。
export PATH=$PATH:'/mnt/c/Users/[ユーザ名]/AppData/Local/Programs/Microsoft VS Code/bin'
WSL2を再起動する
.bashrcに追加した設定を有効にするためにはWSL2を再起動する必要があります。
WSL2の再起動手順は次の通りです。
WSL2のターミナルを閉じる
Powershellで「wsl –shutdown」を実行する
WSL2のターミナルを起動する
WSL2でcodeコマンド実行で起動することを確認する
エラーが発生したコマンドを実行してVSCodeが起動することを確認してみましょう。
$ code .