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