😸

WSL2で同一環境を複数インストール

2023/03/13に公開

こんにちは!鷲崎(@kwashizzz)です。
最近、Windowsに乗り換えましたが、WSL環境を使い回せれば便利だと思い、Ubuntu22.04を別の環境としてインストールしてみました。そこで、詰まった部分があったので、記載しておきます。

基本的には、管理者権限で、WSL 上で同一ディストリビューションの環境を複数インストール・管理するを実行すればうまくいきます。

しかし、Ubuntu22.04をインストールした際に、ユーザを作成しましたが、rootユーザで入ってしまい、update
などがうまく動作しませんでした。

そこで、wsl --distribution 作成したディストリビューション名 --user <ユーザ名> で環境に入ると、うまく動作しました。

また、環境が壊れた際に、wsl --unregister <削除するディストリビューション> としたところ、wslが動作しなくなしました。

その際には、起動しなくなったWSL2を復活させるまでにしたあれこれの、WSL2無効化→有効化を試すと動作するようになりました。この辺も管理者権限で行っていなかったから動作しなくなった気がします...

wslのデフォルトユーザ

WSLを起動した際に、毎回rootからユーザを変更するのが、面倒なので、デフォルトユーザを変更する。

rootユーザで、

vi /etc/wsl.conf

とし、以下を記載しwslの再起動を行う。

[user]
default=<user_name>

Dockerを使用する

Windows で WSL2 (Ubuntu) + docker compose 環境構築
を参考にDocker, Docker-composeをインストール

以下を実行

sudo PWD=${PWD} docker-compose up -d

GPUを使用する場合

WSL での ML の GPU アクセラレーションの概要 でGPU周りを設定後

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo service docker restart

を実行する

gitを使用する

windowsにgitをインストールし、そのgitに対して、wslから、パスを通します。(wsl2にgitをインストールして使用すると遅いらしい)

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

参考: Linux 用 Windows サブシステムで Git の使用を開始する

GitHubで編集を提案
Fusic 技術ブログ

Discussion