up:: PowerShell_and_Command-Line

脱出はexit。

Windows 11 に WSL2 Ubuntu をインストールして使ってみる【誰でもできるよ】|hiro20180901

一度完全に落とす場合はwsl -t name
wsl -l -vで状態を確認できる。

WSLでUbuntuを停止(シャットダウン)する手順(WSL2) – マゴトログ シュミニイキル

最近はいろいろwindowsの設定を引き継いでくれるが、通信関係のファイアウォールとかはデフォルトでは無理っぽい。
なのでWindows側の~/.wslconfigに以下を書く。

# .wslconfigに書く
[wsl2]
networkingMode=mirrored

WSLのミラーモードを使おう!

でもこれでもwslのdockerにwindowsのollamaをつなぐとかいう変な設定は流石に無理。
大人しくwslでollamaを使う。

追記:ミラーモードを使うと何故かhttps://registry-1.docker.io/v2/に接続できなくなってしまう。
なので切った。

docker

公式に従う。
Ubuntu | Docker Docs

could not select device driver “nvidia” with capabilities: gpu

wslは標準でGPUを使用しないようにしている。
なのでそれをONにする。Nvidiaドライバーをインストール。

Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit
WSL でのパーミッション設定・GPU の有効化 WSL2 - Qiita

環境変数をwindowsと共有

Title Unavailable | Site Unreachable
WSL2 LinuxとのWindowsの相互運用性 [Ground Sunlight]
WSL その128 - Windowsの環境変数とLinuxの環境変数を相互に引き継ぎ可能に - kledgeb

WSLENVというところに変数名を入れると、同名の環境変数がWSLに入る。
これは逆も然りで、WSL側の変数にあれば同名の環境変数がwindowsに入る。
一方向にしたい場合、windows wslなら\u、wsl windowsなら\wスイッチを付ける。

そのままだとパスの違いで意味が無くなるので、\pをつけて相互変換してもらう。
スイッチを複数点ける場合は\upのように続けて書く。

パスを複数点ける場合はPATH:PATHのようにコロンで区切る。

PATHを相互で使用したい場合

windows wslの解説。exeまとめのパスリストを扱う場合。
まず前提として\lはいらない。

また、WSLはデフォルトでシステムの環境変数をPATHに引き継ぐ。
これを切りたい場合は以下をwslの/etc/wsl.confに書く。

[interop]
appendWindowsPath = false

WSL2でWindowsのPATH設定が引き継がれるのを解除する

直接WSLENVにPATHと指定しても、よくわからないが反映されない。
なので一回別の環境変数にPATHを書き込み、それを共有し、それを~/.bashrcで読み込むという流れ。

一例として、WSLPATHに一度PATHを書く。
これは%PATH%を指定すれば勝手に展開してくれる。

これをWSLENVに、WSLPATH/upのように置いておく。

あとはwsl側でexport PATH=$PATH:$WSLPATHを.bashrcに書いて、source ~/.bashrcとすれば毎回読むようになる。

なお、.exeを付けないとちゃんと読んでくれない。
しゃーないのでmisemise.exe x -- fdのようにして呼んでる。

なんかプロセスを消してくれない?
どんどんたまってタスクマネージャーが効かない位PCを重くしたので、あまり同じmiseをwslから使わないようにする。
結局Stop-Processで止めた。