Windows 10 バージョン1607(Anniversary Update)からサポートしたWSL(Windows Subsystem for Linux)。その結果としてWindows 10上でもUbuntuなどのLinuxディストリビューションが動作し、各種コマンドが利用可能になった。本連載ではWSLに関する情報を紹介する。
Windows 10 バージョン1709でWSL正式版へ
2017年9月リリースを予定しているWindows 10 バージョン1709(Fall Creators Update)では、WSLが完成版となる。Microsoftは、2017年7月28日(以下すべて現地時間)に公式ブログで、7月26日にリリースしたWindows 10 Insider Preview ビルド16251から、WSLのベータ版表記が取れたことを報告した。2015年5月に同社が開催した開発者向けカンファレンス「Build 2015」での発表から約2年半の月日を経て、WSLはひとまずの完成を迎えたこととなる。
MicrosoftはWSLによる開発環境が実用レベルに達することで、業務利用やLinuxコマンドを用いた利便性を日常の操作に用いることができるとアピールした。既にWSLを利用する上で「開発者モード」の選択は不要になり、LinuxディストリビューションイメージもWindowsストア経由で取得可能になったことから、これまでWindowsとLinuxを併用していた開発者や、日常業務をRPA(Robotic Process Automation)的に自動化したい担当者にも恩恵となる。
改めて述べるまでもなくWSLはLinuxコマンドの実行や、LinuxからWindowsファイルシステムへのアクセスや共有、Windowsプログラムの起動が可能だ。Microsoftは1例として、Windows 10の「C:\Temp」フォルダーに"Hello"の文字列を持つテキストファイル「hello.txt」を作成し、メモ帳で開く操作をワンライナーで実行する「cd /mnt/c/temp/ && echo "Hello" > hello.txt && notepad.exe hello.txt」を紹介。WSLを活用すれば、日常業務を一定レベルまで自動化することができる。
また、Windows 10側からLinuxコマンドを実行することも可能だ。Microsoftは、事前に用意したメッセージをフォーチュンクッキー風にランダム表示するfortuneコマンドの出力結果をパイプで、牛のアスキーアートを描くcowsayコマンドをWindows 10のコマンドプロンプトからBash.exe経由で実行する「bash -c "fortune | cowsay"」を紹介している。ただし、Windowsストア経由でインストールしたLinuxディストリビューションは以前のように、%APPDATA%\AppData\Local\lxssフォルダーに展開されておらず、そのまま実行してもエラーになってしまう。
筆者が確認したところWindowsストア版Ubuntuは、%ProgramFiles%\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_1604.2017.711.0_x64__79rhkp1fndgscフォルダーに展開されるものの、各Linuxコマンドはinstall.tar.gzで固められた状態だ。いずれかの場所にイメージを展開したフォルダーへPATHを通せば先のコマンドも実行可能になるはずだが、このあたりは別の機会を見て精査したい。
他方でMicrosoftは、WSLがサポートしない機能に対しても改めて明言している。Apacheやnginx、MySQL、MongoDBなどのサーバーアプリケーションは今後もサポートせず、同社は「WSL上のLinuxは(あくまでも)双方向的な操作を提供し、本番運用向けではない」と述べている。また、以前から断言してきたようにX Window SystemのようなGUIアプリケーションもサポート外。個人的に注目しているのが、Windows経由のLinuxファイルシステムに対するアクセスだ。同社は「改善に努めている」と注意書きを沿えており、今後はWindows 10とLinuxの相互的な操作環境が更に進むと思われる。例えばWindows版GnuPGPをインストールし、Linux側に保存した各鍵を使って認証を行うといったことも可能になる可能性は高い。
公式ブログでは、WSLが正式版になったことでサポートに関する説明も行われた。MicrosoftはWSL基盤と関連するツールをサポート対象とし、Linuxディストリビューションはパブリッシャーパートナーに預けるという。例えばUbuntuの場合はCanonical UKおよびUbuntu Project、openSUSEならSUSEおよびopenSUSE projectが担当する。もっともWSLはGitHub上で公開しており、これまでも議論や機能提案が行われてきた。テンプレートやガイドラインも用意されているため、誰でもWSLにコミットできる。WSLおよびLinuxディストリビューションが意図どおり動作しない場合は積極的に意見を述べることで、よりよい開発・検証環境を手にすることができるだろう。
阿久津良和(Cactus)