WSL を開発環境に利用するための備忘録

はじめに

Windows の WSL 環境を開発に利用するための、初期設定方法を記載する。
WSL は、利用可能である前提とし、基本的な設定などは、割愛する。
WSL 環境は、デフォルトのディストリビューションではなく、新しく作成する。
デフォルトの環境を利用すると、環境の維持や、再構築などで困ることになるため、別途環境を用意する。

最小構成のディストリビューションを作成

個別のディストリビューションを構築するための基礎となるディストリビューションを作成する。

以降の手順は、デフォルトのディストリビューションを削除するので、注意。

Ubuntu-20.04 環境を削除する

cmd.exe 上で、以下を実行する。
wsl --unregister Ubuntu-20.04

WSL のデフォルトバージョンを 2 に設定する

cmd.exe 上で、以下を実行する。
wsl --set-default-version 2

Ubuntu-20.04 環境をインストールする

cmd.exe 上で、以下を実行する。
以下のコマンドが実行完了すると、別ウィンドウが開き、ログインユーザ ID とパスワードを聞かれるので、任意に設定する。ここでは、ubuntu とする。
wsl --install --distribution Ubuntu-20.04

初期設定を行う

WSL 上で、以下を実行する。
任意に別途設定を追加してよい。
sudo sed -i.bak -r 's@http://(jp.)?archive.ubuntu.com/ubuntu/@http://jp.archive.ubuntu.com/ubuntu/@g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get -y upgrade
exit

最小構成ディストリビューションをエクスポートする

cmd.exe 上で、以下を実行する。
ディストリビューションを格納するディレクトリを任意に決める。ここでは、C:\WSL_data とする。
mkdir C:\WSL_data
cd /D C:\WSL_data
wsl --export Ubuntu-20.04 Ubuntu-20.04.tar

開発用環境を構築する


最小構成ディストリビューションをインポートする

cmd.exe 上で、以下を実行する。
開発環境名は、任意に指定する。ここでは、Ubuntu-20.04-build とする。
wsl --import Ubuntu-20.04-build Ubuntu-20.04-build Ubuntu-20.04.tar

開発用環境をデフォルトにする場合、以下を実行する。
wsl --set-default Ubuntu-20.04-build

開発用環境を起動する

cmd.exe 上で、以下を実行する。
コマンドを実行すると、開発環境にログインした状態となる。
wsl --distribution Ubuntu-20.04-build

初期設定をする

WSL 上で、以下を実行する。
デフォルトユーザを設定する。このユーザは、前述の手順で設定した、ログインユーザ ID とする。ここでは、 ubuntu とする。
appendWindowsPath 指定は、PATH に Windows 側の PATH を追加するかを設定する。
WSL では、wine 無しで exe ファイルを実行できるため、必要に応じて設定を変更する。
これらの設定は、ディストリビューションをインポートする度に、実施する必要がある。
エクスポートでは、この設定は除外されているようだ。
cat << EOF > /etc/wsl.conf
[user]
default=ubuntu
[interop]
appendWindowsPath=false
EOF
exit

開発環境を再起動する

cmd.exe 上で、以下を実行する。
上記の設定を有効化するために、再起動する。
以下のコマンドを実行すると、開発環境に ubuntu ユーザでログインした状態となる。
wsl --terminate Ubuntu-20.04-build
wsl --distribution Ubuntu-20.04-build

開発環境を設定する

WSL 上で、以下を実行する。
ここでは、開発環境に必要な、任意の設定を行う。
ここでは、Go 言語での開発環境を構築する。
cd
sudo apt-get install gcc make
golang_ver=1.19.3
wget https://go.dev/dl/go${golang_ver}.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go${golang_ver}.linux-amd64.tar.gz
echo export PATH=\~/go/bin:/usr/local/go/bin:\$PATH | sudo tee /etc/profile.d/golang.sh
exit

再度、開発環境にログインすると、go にパスが設定される。
構築済みの開発環境をエクスポートしておけば、再構築や、別の PC での環境構築が簡単に行える。