Windows 10 バージョン1607(Anniversary Update)からサポートしたWSL(Windows Subsystem for Linux)。その結果としてWindows 10上でもUbuntuなどのLinuxディストリビューションが動作し、各種コマンドが利用可能になった。本連載ではWSLに関する情報を紹介する。

UbuntuやSUSE Linux Enterprise Serverがパッケージ化

Microsoftは2017年9月リリース見込みのWindows 10 バージョン1709(Fall Creators Update)で、Ubuntu以外のLinuxディストリビューションをサポートすると発表した。既存のUbuntuに加えて、SUSE Linux Enterprise Server/openSUSE/Fedoraの名前を挙げていたが、同社は7月10日(現地時間)にUbuntuがWindowsストアに並んだことを公式ブログで発表した。Windows 10 Insider Preview ビルド16215以降で利用できるという。

Windowsストアに並んだUbuntu

基本的には従来のBUW(Bash on Ubuntu on Windows)もWindowsストア経由でイメージをダウンロードしていたが、他のUWP(ユニバーサルWindowsプラットフォーム)アプリケーションと同じパッケージ化することで、ダウンロードサイズを最小限に抑えるブロックベースのダウンロードロジックが利用可能になる。

既にBUW展開済みの環境に、WindowsストアからUbuntuを展開した状態

上図のとおり基本的な操作は従来と変わらず、ユーザー名やパスワードの設定を行う。ただし、言語周りのシェルスクリプトは用意されておらず、環境変数LANGは「en_US.UTF-8」のため、ご自身で設定を変更しなければならない。

Ubuntuのバージョンなどに変更はなく、16.04 LTSのままだ

興味深いのはAppxパッケージになったことで、Windows 10上の実行環境が変更した点だ。以前のBUWは「%LOCALAPPDATA%\lxss」をメインフォルダーとして使っていたが、Windowsストア経由のUbuntuは、「%ProgramFiles%\WindowsApps」フォルダーを利用する。具体的には「C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_16.0.4.0_x64__79rhkp1fndgsc\ubuntu.exe」を起動する仕組みのようだ。

WindowsストアのUbuntuを実行した状態。実行パスなどが異なっている

フォルダーをエクスプローラーで開いた状態。Appxパッケージ関連ファイルが並ぶ

その結果、WSLは複数のLinuxディストリビューションのインストールや実行を可能にしている。執筆時点でWindowsストアに並ぶLinuxディストリビューションは、UbuntuSUSE Linux Enterprise Server 12openSUSE Leap 42の3つだが、インストール可能だったのは前者2つ。openSUSEは準備中のようであり、Fedoraは見つからないものの、Microsoftは1~2週間で入手可能になるという。

Windowsストアに並ぶSUSE Linux Enterprise Server 12

openSUSEは以前からWindowsストア上で見つかっているが、まだインストールできない

Windows 10上にUbuntuとSUSE Linux Enterprise Serverを起動した状態

このようにBUWとWindowsストア経由で入手するLinuxディストリビューションは似て非なるものである。つまり、BUWとWindowsストアのUbuntuは別物のため、既存環境を新しいUbuntuに移行させる場合、必要なファイルをコピーしてから、Windows 10上のコマンドプロンプトやWindows PowerShellで「lxrun /uninstall」を実行してアンインストールすることをお薦めする。なお、LinuxディストリビューションがAppxパッケージに変わったことで、lxrunコマンドは今後廃止されるはずだ。

「lxrun /uninstall」でBUWの環境はアンインストールできる

阿久津良和(Cactus)