WSLでUbuntuなどを立ち上げてサーバの開発するのほんと便利です。Ubuntuにコードを置きながらWindowsのVisual Studio Codeでコードを編集しコマンドの実行はTerminalから行えて、ローカルに立てた鯖にはWindowsのChromeで確認できる。
でもこれだとMacでいいじゃんって事になるのだけど、WSLはLinuxのインスタンスをいくつでも立ち上げられるのだ。プロジェクトごとにUbuntuを立ち上げてそれ用の環境を構築して作業ができる。素敵じゃない。その方法を簡単に書きます。
WSL2でUbuntu-20.04がインストールされた状態から始めます。ユーザー名は ubuntu
です。ターミナルはWindows Terminalを使います。WSL2を有効にする方法などはぐぐってください。
まずはUbuntuがインストールされているか確認。
PS C:\Users\akira> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
PS C:\Users\akira>
Ubuntu-20.04が入ってます。
Ubuntu-20.04のイメージを保存して、そのイメージを使って新しくUbuntuをインストールするという流れになるので、その作業場所としてWindows側のユーザーディレクトリの下に wsl
ディレクトリを作って移動します。
PS C:\Users\akira> mkdir c:\Users\akira\wsl
ディレクトリ: C:\Users\akira
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2021/08/18 10:23 wsl
PS C:\Users\akira> cd c:\Users\akira\wsl
PS C:\Users\akira\wsl>
既にインストールされているUbuntuからイメージファイルを作ります。
PS C:\Users\akira\wsl> wsl --export Ubuntu-20.04 Ubuntu-20.04.tar
PS C:\Users\akira\wsl> ls
ディレクトリ: C:\Users\akira\wsl
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/08/18 10:31 1082163200 Ubuntu-20.04.tar
Ubuntu-20.04.tar
が作成されました。 Ubuntu-20.04.tar
から Project1
という名前の新しいインスタンスを作ります。
wsl --import <インスタンス名> <インストール先のパス> <イメージファイルパス>
となります。
PS C:\Users\akira\wsl> wsl --import Project1 Project1 Ubuntu-20.04.tar
C:\Users\akira\wsl\Project1
にインストールされました。wslで確認してみます。
PS C:\Users\akira\wsl> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
Project1 Stopped 2
Project1
ができてますね。最後にWindows Terminalの設定を少しします。設定画面を開きます。
Project1
を開き、コマンドラインには起動ユーザーの -u ubuntu
を追加し、ディレクトリの開始にはユーザーホームの //wsl$/Project1/home/ubuntu に変更します。 (この設定は効かなくなったようです)
削除するコマンド
PS C:\Users\akira\wsl> wsl --unregister Project1
おしまい。