WSL2からVSCodeが起動しない場合の対処方法 (Command ‘code’ not found, but can be installed with: sudo snap install code)

Windows,Development

 

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のインストールパスは次のようになっています。

デフォルトのWindows側のインストールパス

C:\Users\[ユーザ名]\AppData\Local\Programs\Microsoft VS Code\bin

 

.bashrcを開く

ユーザディレクトリの直下の「.bashrc」ファイルを編集する

$ cd ~
$ vim .bashrc

 

WSL2ではWindows側のCドライブは「/mnt/c/」にマウントされています。

そのため、WSL2側のデフォルトのパスは次のようになります。

デフォルトの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 .