対象OS:Windows 10バージョン1607以降(64bit版のみ)
Windows 10のバージョン1607(ビルド14393、Anniversary Update)では、Ubuntu互換の実行環境「Windows Subsystem for Linux(WSL)」と「bash(Bourne Again Shell)」が新たに導入された(64bit版でのみ利用可能)。これを利用すると、LinuxのUbuntuディストリビューションで用意されているプログラム(Ubuntu向けのバイナリパッケージやソースコードなど)をそのまま、WSL上で実行できるようになる。
今までも、Windows上でUNIX/Linuxのプログラムを実行するツールや互換実行環境(SUAやCygwin、MSYSなど)があった(TIPS「【総まとめ】Windowsコマンドプロンプトの入門から使いこなしまでの記事」参照)。だが、このWSLは、Ubuntu向けに配布されているパッケージをそのままダウンロードしてインストールおよび実行できる点が異なっている。SUAやCygwin向けに特別に作られたものを用意しなくても、現在広く普及しているUbuntu向けのプログラムがそのまま使えるのが利点である(ただしサーバプログラムなどはサポートされない)。
本TIPSではWindows 10バージョン1607以降を前提として、WSLとその上で動作するbashコマンドをインストールする方法を紹介する。
ところでWindows 10のバージョン1607で利用できるWSL機能はまだβ版である。Ubuntuで動作するコマンドなどが全て利用できるわけではないし、文字表示などに一部不具合なども見受けられる(特に日本語文字表示にはまだ問題が多い)。本格的な利用のためには、今後の開発を待つ必要がある。
WSLを利用するには、管理者権限のあるアカウントでサインインし、[スタート]ボタンを右クリックするか、[Windows]+[X]キーでクイックアクセスメニューを出して、一番上にある[プログラムと機能]を起動する。
[プログラムと機能]画面が表示されたら、左側のメニューから[Windowsの機能の有効化または無効化]を選択する。
機能一覧の画面が表示されたら、[Windows Subsystem for Linux (Beta)]のチェックボックスをオンにして、機能を追加する。再起動が求められるので、指示に従って一度システムを再起動する。
再起動後、また管理者権限のあるアカウントでサインインし、[スタート]メニューから[設定]アプリを起動する。そして以下の画面のように、[更新とセキュリティ]−[開発者向け]−[開発者向け機能を使う]で[開発者モード]を選択し、画面を閉じる。
[開発者モード]を選択すると、次のような警告画面が表示されるので、内容を確認して[はい]をクリックする
執筆時点では、「開発者モード」を有効にすると、sshのポート(TCPの22番ポート)がオープンされ、外部からsshでログインできるようになるので(外部から接続するとコマンドプロンプトcmd.exeが起動する)、注意すべきだ。
不用意に外部から接続されたくなければ、ファイアウォールで「SSH Server Proxy Service」のポートをローカルネットワーク以外には許可しないように制限したり、(SSH以外にも、既に多数のポート/サービスが外部に向けてオープンされているので)全てのユーザーアカウントとパスワードを容易に推測されないものに変更したりすること。
以上の操作で準備は完了したので、次はWSLの実行環境を用意する。この手順3の操作は、WSLやbashを利用したいユーザーごとに最初に1回行う必要がある。管理者権限がない、一般のユーザーアカウントであってもWSLを利用できる。
まずコマンドプロンプトを起動し、「bash」コマンドを実行する。するとWSLをインストールするかどうかを確認するメッセージが表示されるので、「y」を入力して先へ進む。
インストールを許可すると、WSLで利用する環境イメージ(Ubuntuのファイルシステムやデフォルトのツールなど)がローカルのユーザーフォルダの中に展開される。ユーザーごとに、約600Mbytes弱のファイル領域が必要となる(これは本記事執筆時点でのサイズ。今後増加すると予想される)。
その後、Ubuntu環境で利用するユーザー名とパスワードの入力が求められるので、適当なものを指定する。このユーザー名はWindowsのユーザー名とは別に管理されているので(WSLの中でのみ有効なユーザー名となる)、異なる名前にしてもよいし、同じ名前にしてもよい(ただし日本語のユーザー名は避けた方がよいだろう)。
以上の入力が済むと最後の処理が行われ、WSL環境がセットアップされる。
以上でWSLとbashのインストールは完了である。WSLを使いたい場合は、bashを起動して、コマンドを入力・実行すればよい。
それには、[スタート]メニューに追加された[Bash on Ubuntu on Windows]という項目を選択してbashを起動する。よく使うなら、このメニューを右クリックして、スタート画面やタスクバーにピン留めしておけばよい。
UbuntuやLinuxについてはここでは詳しく述べないが、コマンドの説明はmanコマンドで調べたり、不足しているパッケージはapt-getコマンドで取得したりすればよい。以下の連載なども参照のこと。
またWindows 10側のファイルシステムは「/mnt/c/〜」や「/mnt/d/〜」などで参照できる。
執筆時点では、このWSLはまだβ版であり、例えば日本語文字列が正しく表示されないことがある。
こんな場合は、画面を再描画させたり(ツールにもよるが、[Ctrl]+[L]や[Ctrl]+[R]で再描画できることが多い)、bashのウィンドウを一度最小化してから元の状態に戻したり、スクロールさせたりする、などの操作で正しく表示されることがある。
また、「ロケール」(言語や地域の設定)をデフォルトの日本語モード(ja_JP.UTF-8)から英語モードにしておくと(bash上で「LANG=en_US.UTF-8」や「LANG=C.UTF-8」などを実行する)、表示の乱れが少ないようだ。WSLはまだβ版であることを理解して利用していただきたい。
■この記事と関連性の高い別の記事
Copyright© 1999-2016 Digital Advantage Corp. All Rights Reserved.
@IT編集部では、編集記者を募集しています。ご興味のある方は奮ってご応募ください。