Microsoft と Linux が敵対関係にあるような時代がありました。対立相手を倒して、オペレーティングシステムの牙城を目指す争いを繰り広げていました。しかし、時代は変わりました。
覇権争いはまだ続いているのかもしれませんが、少なくともマイクロソフト側からは、オリーブの枝(和平の象徴としての)が Linux コミュニティに差し向けられました。Satya Nadella 氏が Microsoft のCEOに就任して以来、Microsoft は Linux をエコシステムに取り入れるようになり、敵対より共生の道を選んだように見受けられます。PowerShell は現在クロスプラットフォームであり、Linux 上でも動作します。OpenSSH は Windows 上で動作し、Linux VM は Azure 上で動作します。Windows Subsystem for Linux (WSL) を使えば、Windows 10に、ネイティブに(VMを使用せずに)Linuxディストリビューションのディレクトリをインストールすることもできます。
仮想マシンを使わない理由
WSLのことを耳にしたとき、まず頭に浮かんだ疑問がありました。それは、「今まで慣れ親しんできたように仮想マシンを使えばいいのに、そうしないのはなぜか?」という疑問でした。仮想マシンを使うという選択肢はもちろんあります。違いは、WSLを使うとリソースの点で仮想マシンのようなオーバーヘッドがないという点です。また、Bashプロンプトから Windows ホストと対話したり、PowerShell から Linux コマンドを実行したりすることもできます。
たとえば、PowerShell から、実行可能ファイル wsl.exe を使用して、Windows ディレクトリで ls –la を実行できます。
下は、Linux WSLインスタンスのBashシェルから同じコマンドを実行しています。WindowsファイルシステムがLinuxディストリビューションの /mnt/c にマウントされていることに留意してください。
Windows 10 へのWSLのインストール
Windows 10 マシンに Ubuntu をインストールするには、Microsoft のドキュメントを参考にして、Windows 10コンピュータにLinuxディストリビューション(Ubuntu)を、PowerShellからインストールします。まず、WSL機能を有効にして、リブートします。
PS C:\Windows\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Windows 10 に Ubuntu をインストール
次に、Invoke-WebRequest コマンドレットを使って Ubuntu ディストリビューションをダウンロードします。
PS C:\Windows\system32> Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile ~/Ubuntu.zip –UseBasicParsing
それから、ディストリビューションを解凍し、ディレクトリを変更して、ディストリビューションの .exeを起動します。
PS C:\Windows\system32> Expand-Archive ~/Ubuntu.zip ~/Ubuntu
PS C:\Windows\system32> cd C:\Users\vagrant\Ubuntu\
PS C:\Users\vagrant\Ubuntu> .\ubuntu.exe
最後のステップとして、ディストリビューションにローカルのユーザー名とパスワードを設定します。
Installation successful!
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information, visit: https://aka.ms/wslusers
Enter new UNIX username: dan
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Default UNIX user set to: dan
To run a command as administrator (user "root"), use "sudo".
See "man sudo_root" for details.
これで Windows 10 コンピュータ上に、Linux の Bash プロンプトが表示されます。
dan@vagrant-10:~$
Dan Franciscus
Dan Franciscus is a systems engineer and VMware Certified Professional (VCP) specializing in VMware, PowerShell, and other Microsoft-based technologies. You can reach Dan at his blog (http://www.winsysblog.com/) or Twitter at @dan_franciscus.