Open4
WSLあれこれ
WSLで躓いたこと困ったこと解決したことをつらつらり
WSLの再起動
# ディストリビューションの一覧を表示
> wsl -l -v
# 停止
> wsl -t <dist_name>
# 再度terminalからWSLにつなぐなりすれば動き出す
# or
# 管理者権限のPowershellから実行
> Restart-Service LxssManager
Windowsの環境変数がUbuntuの$PATHに含まれてる
Ubuntu側の/etc/wsl.conf
ファイル(なければ作る)に以下を記述
wsl.conf
[interop]
enabled = false
appendWindowsPath = false
ubuntuを再起動すると反映される。
ディストリビューションを閉じて8秒ほどたつと再起動されるのでwsl --list --running
コマンドで逐一起動しているディストリビューションがあるか確認し、起動しているディストリビューションがなければ再度ディストリビューションを起動すると設定が反映されてる
❯ wsl --list --running
実行中のディストリビューションはありません。
code
コマンドでVSCodeが起動しない
$ code .
Command is only available in WSL or inside a Visual Studio Code terminal.
code
コマンドで呼び出されているのは、vscode-server
でWindows側に入っているVSCodeではない。
これはappendWindowsPath = false
に設定してWindows側のPathがUbuntuに通っていないため。
従ってWindows側のVSCodeのパスをUbuntuの$PATHに追加してやればよい。
~/.bashrc
# パスは適宜変えてね
export PATH=$PATH:"/mnt/c/Users/username/AppData/Local/Programs/Microsoft VS Code/bin"
appendWindowsPath = true
に戻せない???
appendWindowsPath
をfalseにした後trueに戻したけどPATHが変わらない。元に戻せない???
wslpath
windows ⇔ WSL 間でパス文字列を変換
wslpath <windowsのパス>
# -> wslのパス
wslpath -w <wslのパス>
# -> windowsのパス