1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた

ASCII.jp / 2024年11月24日 10時0分

 現在、Windows Subsystem for Linux(WSL)のVer.2.4.4が、プレビュー版として公開中だ。このバージョンから、tar形式によるWSLディストリビューションの配布が開始される。また、ブログなどによれば、RedHat公式のWSLディストリビューションが準備中だという。今回は、このプレビュー版WSLについて解説する。

 まず、このバージョンはプレビュー版のため、以下のコマンドを使って、導入する(WSLが導入済みの場合)。

wsl.exe --update --pre-release

 アップデート後に「wsl.exe --version」コマンドを使ってバージョンを確認。「WSL バージョン: 2.4.4.0」という表記があれば、アップデートは成功している。

WSL Ver.2.4.4における新機能 tarベースのパッケージによる導入が可能に

 WSL Ver.2.4.4には、「WSLにようこそ」ウィンドウが、「Linux用Windowsサブシステム設定」に追加された。

WSL
WSL Ver.2.4.4では、GUI設定(Linux用Windowsサブシステム設定)から、「Linux用Windowsサブシステムにようこそ」画面を起動することができる。WSL固有の情報を提供する「スタートページ」の役割を持つ

 特に何か役に立つものではないが、WSLの新規ユーザーに、WSLの特徴を伝えるのには役立つと思う。もう少し発展させて、PowerToysの「PowerToysへようこそ」のように、リリースノートを兼ねるといいのだが。

 もう1つの改良点は、WSLディストリビューションの新しい配布方法である。これを仮に「tarベースのパッケージ」と呼ぶ。従来、WSLディストリビューションは、Appxパッケージを使って、Microsoftストア経由で配布されていた(以後、Appxパッケージと呼ぶ)。

 このAppxパッケージには、ストア経由であるためいくつかの問題(制限)があった。

・同じディストリビューションを複数インストールできない ・ディストリビューションの名前を変更できない ・ディストリビューションのインストール先を指定できない

 簡単なWindowsのアプリケーションならともかく、システムの土台ともなるLinuxでは、いずれも意外に小さくない問題だった。

 一応、wsl.exeが後から搭載したexportコマンドなどを使うことで、上記の問題には対応が可能ではあったが、ドキュメント化されているわけではなく、「裏技」的なものだった。このあたりについては簡単だが、過去に記事にしている(「ストア版WSLをアップデートまたはダウングレードする」)。

 exportしたディストリビューションのvhdxイメージを別名でimportすることで、内容が同一だが、WSLとしては異なる実行環境として登録できる。

 そもそもWSL2では、専用のLinuxカーネルを、複数のディストリビューションが共有して動作する。ディストリビューションの実行イメージは、ネイティブのファイルシステム形式(ext4)のまま、仮想ハードディスクファイルに保存さる。これを「軽量ユーティリティ仮想マシン」で動くLinuxカーネルが実行する。このため、WSLディストリビューションのファイクシステムには、Linuxカーネルは含まれない。

 tarとは、もともとテープデバイスへのバックアップコマンドとして作られたが、現在では、ファイルシステム内のディレクトリ構造を含めたファイルのバックアップコマンドとして使われる。

 現在のWSLでも、前述のようにexportオプションでtar形式を指定できる。しかし、tarベースのパッケージでは、tarでアーカイブしたext4ファイルシステムを使う。「WSL配布ファイル」(/etc/wsl-distribution.conf)に、インストール後の最初の起動(Out of box experience)などについて、記述を入れておく必要がある。

 このファイルは、ディストリビューション内にあり、アイコンやディストリビューション名などの初期データをLinuxコードで記述することができる。もちろんWSLなので、Win32側の実行ファイルを呼び出すことも可能だ。従来のAppxパッケージと異なるのは、このtarファイル単体でインストールが可能になることだ。

 なお、tarベースのパッケージを作るには、ディストリビューション内で、tarコマンドでファイルシステムのアーカイブを作成し、gzipコマンドで圧縮する。ファイルシステムのルートがカレントディレクトリならば、以下のようなコマンドを使う。

tar --numeric-owner --absolute-names -c * | gzip --best > ../install.tar.gz

 tarベースのパッケージが導入されたのは、企業内などで、同一の設定をしたディストリビューションを多数配布するといった用途を想定してのことだ。設定を済ませたディストリビューションに、必要なファイル(/etc/wsl-distribution.conf)を配置したtarファイルを作成するだけで、ディストリビューションの配布パッケージを作ることができる。

 このとき、ファイル拡張子を「~.wsl」とすることで、エクスプローラーから直接インストールすることが可能になる。

 これに合わせて、「wsl.exe --install」や「wsl.exe --list --online」で、参照可能なディストリビューションをレジストリの設定で置き換え、追加する機能が搭載されている。この場合、インストールに必要なtarパッケージと、JSONで記述した「ディストリビューションマニファスト」を同一フォルダに置き、そのURLをレジストリに設定する。

 もう1つ、tarベースのパッケージでは、インストール時にWindows Terminalに登録するWindows Terminalプロファイル(JSON)をあらかじめ登録しておくことも可能だ。

 Windows Terminalプロファイルは、Windows Terminalがタブやウィンドウを作成するときの情報で、シェルを起動する方法やタブやウィンドウの初期状態を設定する。Windows Terminalのsettings.jsonの中に記述されている。

 プロファイルとなるJSONファイルを作成し、そのファイルパスをWSL配布ファイルに記述しておくことで、インストール時に指定したプロファイルを使って、Windows Terminalにプロファイルを登録できる。

 このあたりに関しては、以下のページに情報がある。

●WSL用のカスタムLinuxディストリビューションを構築する  https://learn.microsoft.com/ja-jp/windows/wsl/build-custom-distro

 前バージョンあたりから、WSLの組織内利用の機能が強化されつつある。Linuxに任せられる部分はWSLに任せたいのか、既存の企業内Linuxユーザーの取り込みなのか、目的は不明だが、企業内でのWSLの利用は容易になりつつあるようだ。

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください