Bash on Ubuntu on Windowsとは

               公開日:2016/11/03

【2018年3月 追記】本ブログは、ベータ版についての記述です。

正式版については、ここを参照してください。


Bash on Ubuntu on Windows 概要

2016年11月、WindowsでUbuntuが動作するソフトツールが気になり、私のPCにBash on Ubuntu on Windows(ベータ版)をインストールしました。

日経Linux 2016年10月号にも「ついにデビュー! Windows版Linuxの始め方」という記事が掲載されていました。また、ネットで検索するといろんな情報が書かれてます。

「Bash on Ubuntu on Windows(UoW または BoW)」とは、Windows Subsystem for Linux(WSL)の仕組みで動作するUbuntu環境のことです。WSLは、2016年8月にリリースされた「Windows 10 Anniversary Update」により使用可能となりました。

私は、今までWindowsでUNIXコマンドを使用したい場合は、CygwinというUNIXライクな環境をインストールしていました。しかし、これからはマイクロソフト社が提供するUoWというUbuntu環境が使えるようになります。

UoWが使用できるのは、64ビット版のWindows10でバージョン番号1607、OSビルド14393以降です。

バージョン番号は、『Windowsの設定→システム→バージョン情報』で確認できます。

 

Windows10 バージョン

Windows10 バージョン

 

インストール方法

開発者モードの設定

『Windowsの設定→更新とセキュリティ→開発者向け』で開発者モードを選択して、再起動します。

開発者モードの設定

開発者モードの設定

Windows機能からWSLを有効化

スタートアイコンを右クリックして、『プログラムと機能』を選択します。

Windows機能の選択

Windows機能の選択

 

『Windowsの機能の有効化または無効化』をクリックします。

□Windows Subsystem for Linux(Beta)をチェックして、「OK」を押して再起動します。

UoW 有効化

UoW 有効化

 

Ubuntuのインストール

コマンドプロンプトを起動して「bash」を実行すると、Ubuntu環境をダウンロードします。

UoWインストール1

UoWインストール1

「y」を入力

UoWインストール2

UoWインストール2

Windows ストアからダウンロードが開始されます。

UoWインストール3

UoWインストール3

ファイルシステムを展開します。

UoWインストール4

UoWインストール4

UNIX ユーザー名を入力します。その後、パスワードを入力します。
ユーザー名は、Windowsのユーザー名と無関係でLinux環境で使用ためのものです。sudoで管理者権限のコマンドを使用する時に、このパスワードを使用します。

UoWインストール5

UoWインストール5

インストールが完了します。

「exit」コマンドでWindows10のコマンドプロンプトに戻ります。もう一度「exit」コマンドでコマンドプロンプトを閉じます。

ショートカットの作成

UoWのインストールが完了すると、スタートメニューに「Bash on Ubuntu on Windows」が追加されます。

スタートメニュー

スタートメニュー

ファイルの場所を調べると、下記場所にショートカットが作成されています。

UoW フォルダ

UoW フォルダ

これをデスクトップにコピーします。

UoW ショートカット

UoW ショートカット

このショートカットのプロパティを見ると、Windowsのホームディレクトリを指定して「bash.exe」を起動しています。

UoW プロパティ

UoW プロパティ

 

ドキュメントの参照

ドキュメントは、https://aka.ms/wsldocsから参照できます。

UoW ドキュメント

UoW ドキュメント

 

ベータ版で完了していないので、問題点や不完全な機能があることが重要事項として記述されています。

Important note
This is the first release of this brand new technology and it is branded “beta” deliberately – it’s not yet complete! We know there are issues and incomplete features, you should expect some things to work and for many things to fail. But we appreciate you playing with this feature and helping us identify the issues we need to fix in order to deliver a great experience.

 

下記項目がこのWEBページに記載されています。

  • Windows上のUbuntuのBashについて
  • インストールガイド
  • コマンドリファレンス
  • Linuxのユーザーアカウントと権限
  • 相互運用性
  • よくある質問
  • リリースノート

 

インストール先は?

UoWは、隠しフォルダで「%LocalAppData%\LxSS」にインストールされます。

私のPCのユーザー名は「yuki」ですので、%LocalAppData% は「C:\Users\yuki\AppData\Local」です。

UoW インストール先

UoW インストール先

隠しフォルダなので、フォルダは見えません。しかし、\LxSSをパスに追加するとインストールされたファイル一覧が見られます。この隠しフォルダは、[保護されたオペレーティング システム ファイルを表示しない]という特別な隠しフォルダです。

UoW lxSS フォルダ

UoW lxSS フォルダ

Ubuntu環境は、rootfsにインストールされています。見慣れたLinuxのフォルダが並んでいます。

Ubuntu環境 rootfs

Ubuntu環境 rootfs

 

システム情報を調べる

システム情報を調べてみます。

uname -a
UoW システム情報

UoW システム情報

Linux OSのディストリビューションとバージョンを確認します。

lsb_release -a
UoW ディストリビューション

UoW ディストリビューション

Ubuntu 14.04.5 LST がインストールされています。

 

初期設定(その1) hostsの変更

管理者権限でコマンドを実行する時はsudoコマンドを使用します。しかし、初期状態のままではホスト名の名前解決で警告メッセージが表示されしばらく待たされます。

sudo 警告

sudo 警告

/etc/hosts にホスト名を追加して、名前解決できるようにします。

オリジナルの hosts は、下記のように記述されています。

オリジナル hosts

オリジナル hosts

localhost の後ろに、PCのホスト名を追加します。ホスト名は、$(hostname)で参照することができます。

sudo vi /etc/hosts
修正後の hosts

修正後の hosts

 

初期設定(その2)リポジトリの変更

apt-getコマンドによりパッケージをインストールする時のサーバー指定が、海外のサーバーになっているので日本のサーバーに変更します。

/etc/apt/sources.list のホスト名を変更します。

オリジナルの sources.list は、下記のように記述されています。

オリジナル sources.list

オリジナル sources.list

 

国内のサーバーに変更します。

修正後の sources.list

修正後の sources.list

 

pi@RZ82:~$ cat /etc/apt/sources.list
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu trusty main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu trusty-updates main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu trusty-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
pi@RZ82:~$

パッケージのインストール

最初にパッケージ情報データベースのローカルキャッシュを最新状態に更新します。

sudo apt update

 

インストールしているパッケージを最新版に更新します。

sudo apt upgrade

 

インストールできるパッケージ名を調べます。

sudo apt-cache -n search パッケージ名

 

パッケージをインストールするには、パッケージ名を指定して install コマンドを使用します。
gccを使用できるように開発ツールをインストールしてみます。

sudo apt install build-essential

 

gccを使用してみる

C言語で簡単なテストプログラムを書いて、ビルド&実行しました。

#include <stdio.h>

main()
{
    printf("Hellow \n");
}

 

プログラムをビルドします。

pi@RZ82:~/test$ gcc test.c -o test
pi@RZ82:~/test$ ls -l
合計 16
-rwxrwxrwx 1 pi pi 8518 11月  3 16:24 test
-rw-rw-rw- 1 pi pi   56 11月  3 11:37 test.c

 

実行します。

pi@RZ82:~/test$ ./test
Hellow
pi@RZ82:~/test$

 

UoWのアンインストールについて

Ubuntu環境をアンインストールするには、Windowsコマンドプロンプトで下記コマンドを実行します。

lxrun /uninstall

 

ホームディレクトリの内容もまとめて削除する場合は、「/full」オプションを付けます。

lxrun /uninstall /full

 

再インストールするには、下記コマンドを実行します。

lxrun /install

 

最後に

UoWは、簡単なインストールでUbuntu環境が使えるようになりますので、もう私にはCygwinは不要となりました。Windowsユーザーが手軽にUbuntu環境を使えるようになります。

また、ARMプロセッサなどの組み込み機器開発においてWindows上でクロス開発環境を構築するため、VMware/VirtualBoxなどの仮想化環境にLinuxをインストールしていましたが、UoWをクロス開発環境として利用できる時代が到来したのかもしれません。


 

このエントリーをはてなブックマークに追加

Bash on Ubuntu on Windowsとは」への2件のフィードバック

  1. ピンバック: Bash on Ubuntu on Windows がバージョンアップ(Ubuntu 16.04.2 LTS) | ある計算機屋さんの手帳

  2. ピンバック: WSL : Windows で Ubuntu環境 を実行する | ある計算機屋さんの手帳

コメントは受け付けていません。