Windows Subsystem for Linux
2018年3月、Windows Subsystem for Linux (WSL)の仕組みによりWindows10で動作するUbuntu環境をインストールしました。「Bash on Ubuntu on Windows」は、Windows10でbashが動作するもので私はベータ版のときから使用していました。
最近では、「Bash on Ubuntu on Windows」と呼ばずに「Windows Subsystem for Linux」と呼ぶらしいです。
- 2016年08月 : Ubuntu 14.04.5 LTS リリース (By Windows 10 Anniversary Update)
- 2017年04月 : Ubuntu 16.04.2 LTS リリース (By Windows 10 Creators Update)
- 2017年10月 : Ubuntu 16.04.3 LTS リリース (By Windows 10 Fall Creators Update)
2017年10月のWindows10メジャーバージョンアップにより、UbuntuなどのLinuxを正式版としてリリースしてMicrosoft Storeから入手することができます。
2018年3月現在、以下のLinuxディストリビューションをインストールしてLinuxを実行することができます。
- Ubuntu
- OpenSUSE Leap 42
- SUSE Linux Enterprise Server 12
- Debian GNU/Linux
インストール方法
WindowsでLinuxをインストールするには、ふたつの手順で行います。
- 手順-1 WSLの有効化
- 手順-2 Linuxのインストール
手順-1 WSLの有効化
GUI操作 または PowerShellコマンド実行で、Windows Subsystem for Linux (WSL)を有効にすることができます。
【GUI操作でWSLを有効化】
Windowsの設定画面を開きます。
「アプリ」をクリックします。
「アプリと機能」の右側の関連設定の「プログラムと機能」をクリックします。
「プログラムと機能」の左側の「Windowsの機能の有効化または無効化」をクリックします。
「Windowsの機能の有効化または無効化」で「Windows Subsystem for Linux」のチェックボックスをONにして有効化します。
PC再起動のメッセージが表示されるので、「今すぐ再起動」で再起動します。
以上の操作により、Windows Subsystem for Linux (WSL)が有効になります。
【PowerShellコマンド実行でWSLを有効化】
PowerShellを管理者モードで起動して、下記コマンドを実行します。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
PC再起動のメッセージが表示されるので、再起動します。
手順-2 Linuxのインストール
Microsoft StoreからLinuxディストリビューションをダウンロードします。
Microsoft Storeのアイコンをクリックします。
検索窓に「Ubuntu」と入力して検索します。
[入手]をクリックします。
ダウンロードを開始します。
ダウンロードが完了したら、[起動]をクリックします。
Ubuntuが起動し、インストールを開始します。
ユーザー名を入力します。私は、ユーザー名 pi を登録しました。
パスワードを設定します。
Ubuntuのインストールが完了しました。
最新版にアップデート
Ubuntuを起動してバージョンを確認します。
$ uname -a Linux RZ82 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.3 LTS Release: 16.04 Codename: xenial
バージョンは、Ubuntu 16.04.3 LTS でした。最新版に更新します。
最初にパッケージ情報データベースのローカルキャッシュを最新状態に更新します。
sudo apt update
インストールしているパッケージを最新版に更新します。
sudo apt upgrade
再度バージョンを確認します。
$ uname -a Linux RZ82 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.4 LTS Release: 16.04 Codename: xenial
バージョンは、Ubuntu 16.04.4 LTS になりました。
インストール先は?
Windows Subsystem for Linux (Ubuntu)は、どのディレクトリーにインストールされたでしょうか?
調べてみると、「C:\Users\pi\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs」にルートファイルシステムがあります。
Windows側からUbuntu環境のファイルへの(追加/変更/削除)アクセスは禁止しています。もし、ファイルに書き込みした場合は、ファイルシステムが壊れてしまいますので注意が必要です。
逆に、Ubuntu側からWindows環境のファイルへのアクセスは、Windowsファイルシステムを「/mnt/ドライブ名/」にマウントしていますので /mnt/c/ などでアクセス可能です。
UbuntuとWindowsの共有ディレクトリー
Ubuntuで作業しているディレクトリーの内容をWindowsから参照・変更したいことがあります。Windows側からUbuntu環境のファイルへの(追加/変更/削除)アクセスは禁止されています。そこで、作業ディレクトリーをWindows側にしたいと思います。
c:\Users\pi\MyHome をWindowsとUbuntuから共通でアクセスするディレクトリーにします。
$ pwd /home/pi $ cd /mnt/c/Users/pi $ sudo mkdir MyHome $ cd MyHome/
MyHome ディレクトリーを作成しました。
.bashrc の最後に、カレントディレクトリーを MyHome にするコマンドを入れます。
$ cd $ vi .bashrc cd /mnt/c/Users/pi/MyHome を最後に追加
次回ログインで /mnt/c/Users/pi/MyHome がカレントディレクトリーになります。
gccを使ってみる
gccを使用できるように開発ツールをインストールします。
sudo apt install build-essential
C言語で簡単なテストプログラムを書いて、ビルド&実行しました。
#include <stdio.h> main() { printf("Hellow \n"); }
プログラムをビルドします。
$ gcc hellow.c -o hellow
実行します。
$ ./hellow Hellow
最後に
2016年にWindowsでBashが動作する「Bash on Ubuntu on Windows」のベータ版がリリースされてから、動向に注目していました。
2017年10月のWindows Updateで、Windows Subsystem for Linux (WSL)が正式リリースとなりました。そして、Microsoft StoreからUbuntuなどの Linuxディストリビューションがダウンロードできるようになりました。
WindowsでLinuxが動作するという便利な時代となりました。WindowsとLinuxを連携した快適な環境を実現したいと考えています。