WSL2: 開発環境用にカスタムディストリビューションを作成する方法
はじめに
WSL(Windows Subsystem for Linux)は、Windows 上で Linux ディストリビューションを実行する機能です。
WSL を使うことで、開発者は Linux上のツールやコマンドを使用でき、Web開発やバックエンド開発がスムーズに行なえます。
ここでは、既存ディストリビューションを元に、開発環境用のカスタムディストリビューションを作成する方法を説明します。
これにより、既存の環境などに影響を受けない独自の開発環境を構築できます。
1. WSLのディストリビューション管理
1.1. WSLで使用できるディストリビューション
WSL では、以下のような Linux ディストリビューションが利用できます:
- Ubuntu
- Debian
- Oracle Linux (パッケージ名 OracleLinux_9_1)
これらのディストリビューションは、Microsoft Store で提供されています。
1.2. WSLにおけるディストリビューション
WSL では、実行する Linux 環境をディストリビューションというラベルで管理しています。
通常では、WSL のディストリビューションはDebianのような Linux ディストリビューションと一致しています。
WSL のディストリビューションは、Linux ディストリビューションとは別の名前を設定できます。
たとえば、ディストリビューションDebianにdev-debianという名前をつけてインポートします。
このディストリビューションはDebianのままですが、WSL はdev-debianというディストリビューションだと認識します。
1.3. 開発ディストリビューションとは
開発ディストリビューションは、既存のディストリビューションをもとに作成した開発環境専用の WSL ディストリビューションです。
既存のディストリビューションとはまったく別の環境なので、開発用にさまざまな言語や開発ツール、フレームワークを導入しても既存のディストリビューションに影響を与えません。
2. 開発ディストリビューションの作成手順
-
wsl.conf を設定し、各ディストリビューション共通の動作を設定する
-
元ディストリビューションから開発ディストリビューションを複製する
-
Windows Terminal に開発ディストリビューションの設定を追加する
-
開発ディストリビューション特有の設定を行なう
上記の手順で、開発ディストリビューションを作成します。
2.1. wsl.confの設定
WSL では/etc/wsl.confファイルを使用することで、ディストリビューションの動作を細かく設定できます。
/etc/wsl.confの設定を元ディストリビューションと開発ディストリビューションとで同じにすることで、設定の一貫性を保つことができます。
/etc/wsl.confの設定は下記の表のようになります。
| セクション | 設定項目名 | 設定項目設定を | 適用 |
|---|---|---|---|
| boot | systemd | true | WSL 起動時にsystemdデーモンも起動 |
| network | hostname | <ホスト名> | WSL ディストリビューションのホスト名 |
| interop | appendWindowsPath | false | 通常のパスのあとに、Windows 上のパス設定を追加しない |
| user | default | <ユーザー名> | WSL 起動時にログインするユーザー名 |
これらの設定を各ディストリビューションで同じにすることで、設定の一貫性を保つことができます。
wsl.confの設定方法
次の手順で、/etc/wsl.confを設定します。
-
/etc/wsl.confファイルを作成する
下記の内容で、/etc/wsl.confを作成します。#以降はコメントです。wsl.conf# Boot with systemd daemon [boot] systemd = true [network] # hostname changed by distribution hostname = <my_custom_hostname> [interop] # do not add Windows path appendWindowsPath = false [user] default = <defaultUserName>注
<my_custom_hostname>の部分を開発ディストリビューションのホスト名に、
<defaultUserName>の部分を WSL 起動時のログインユーザー名に置き換えてください。 -
WSL を再起動する
コマンドラインでwsl --shutdownと入力し、WSL を再起動します。wsl --shutdown
以降、/etc/wsl.confが適用された状態で WSL が起動します。
2.2. ディストリビューションの複製
ディストリビューションの作成には、WSL のexport、import機能を使用します。
export で元ディストリビューションの tar アーカイブを作成後、開発ディストリビューション側で作成した tar アーカイブを import します。
ディストリビューションの複製方法
以下の手順で、ディストリビューションを複製します。
-
指定したディストリビューションを tar アーカイブに保存する
wsl --export Debian debian.tar上記のコマンドで、
debian.tarに元ディストリビューションがアーカイブされます -
開発ディストリビューション側で、1. で作成した tar アーカイブを import する
wsl --import <開発ディストリビューション> <仮想ディスクディレクトリ> debian.tar<開発ディストリビューション>は、dev-debianなどの開発ディストリビューション名をいれます。
<仮想ディスクディレクトリ>は、`~/.local/share/wsl/dev-debian'のような tar アーカイブを展開するディレクトリを指定します。
以上で、ディストリビューションの複製は終了です。
2.3. Windows Terminalの設定
作成した開発ディストリビューション上で作業ができるように、windows Terminal に設定を追加します。
設定の手順は、次のようになります。
-
Windows Terminal を開き、
Ctrl+,として設定画面を開く

-
[新しいプロファイルを追加]を選択し、元のプロファイル(今回は
Debian)を選択して複製する

-
複製したプロファイルの名前を開発ディストリビューションの名前に変更する

-
コマンドラインを変更し、起動するプロファイルを開発ディストリビューションに変更する
wsl.exe -D <開発ディストリビューション><開発ディストリビューション>には、ディストリビューション複製時に入力したディストリビューションを入れる -
複製したプロファイルを保存し、Windows Terminal をとじる
以上で、Windows Terminal から開発ディストリビューションを選択できるようになりなす。
2.4. 開発ディストリビューションの設定
開発プロジェクトにあわせて、プログラミング言語やフレームワークの導入などを行ない、開発環境を構築します。
具体的には、必要なプログラミング言語のインストール、必要なライブラリやフレームワークの導入、開発ツールのセットアップなどが含まれます。インストールやセットアップの方法は、各言語や開発ツールの公式サイトを参照してください。
さいごに
元ディストリビューションを tar アーカイブにエキスポートして、そこから開発ディストリビューションを作成する方法を説明しました。
作成した tar アーカイブからは複数の開発ディストリビューションが作成できます。
カスタムディストリビューションの利用により、各プロジェクトに特化したクリーンで使いやすい開発環境が構築できます。
それでは、Happy Hacking!
技術用語と注釈
- WSL (Windows Subsystem for Linux):Windows 環境下で Linux ディストリビューションを動作させる機能
-
wsl.conf: WSL の各ディストリビューションの細かな動作を設定できるファイル -
systemd: Linux システムの初期化処理やサービス管理を行なうデーモン
参考資料
Webサイト
- WSL での詳細設定の構成: https://learn.microsoft.com/ja-jp/windows/wsl/wsl-config
Discussion