VSCode Remote WSL で開発するにあたって,Linuxbrew の PATH の設定が読み込まれておらず,うまくライブラリの連携ができていない問題があったためメモ。
統合ターミナルで PATH を設定したいだけの場合
VSCode の統合ターミナルを使うにあたって,PATH の設定をしたいだけの場合,統合ターミナルをログインシェルとして起動すればよい。
具体的には,settings.json
に以下を追記。
"terminal.integrated.shellArgs.linux": [
"-l"
]
ログインシェルと別の環境変数を設定したいときは,個別に設定するようにする。Windows の場合はterminal.integrated.env.windows
,Mac はterminal.integrated.env.osx
,Linux はterminal.integrated.env.linux
に設定する。
"terminal.integrated.env.linux": {
"PATH": "<new path>;${env:PATH}"
}
Git の場所を指定したいだけの場合
Linuxbrew で最新の Git をインストールして使っているのに,VSCode では Linux 標準の古い Git が読み込まれてしまっていて困っている,などという問題を解決したいだけ場合は WSL 側にあるsettings.json
に以下を追記。
"git.path": "<path to git>"
全体に PATH の設定を反映したい場合
拡張機能によっては PATH の設定がうまくされていないと動かないものもあるだろう。
それぞれ個別にsettings.json
で指定できれば良いが,内部の依存ライブラリまで PATH の設定ができないかもしれない。
というか「そもそも VSCode を WSL で立ち上げる前に,PATH の設定くらい読み込んでおいてくれよ」と思うのは自然だろう。
これについて,公式ドキュメントには以下のようにある。
When VS Code Remote is started in WSL, no shell startup scripts are run. This was done to avoid issues with startup scripts that are tuned for shells. If you want to run additional commands or modify the environment this can be done in a setup script
~/.vscode-server/server-env-setup
(Insiders:~/.vscode-server-insiders/server-env-setup
). If present, the script is processed before the server is started.
要するに,VSCode Remote WSL を使うときは PATH の設定 (.bash_rc
,.bash_profile
など) は読み込まれないから,なんか設定したかったら WSL 上に~/.vscode-server/server-env-setup
ファイルを作って書いてね
ということである。
これでたとえば Linuxbrew に PATH を通しておけば,ちゃんとそちらのライブラリが読み込まれるようになる。
また,これを設定すれば,上2つの設定は不要である。