Windows10のLinux互換機能の導入手順

Windows Subsystem for linuxの構築に関する備忘録

Windows 10のAnniversery Update(バージョン1607)から、Windows Subsystem for Linux機能が追加されている。
簡単にいうと、Windows10のシステムの中にUbuntuがまるごとインストールされて、コンソールからシームレスにbash環境が利用できるようになる。
わかりやすい図解が、http://ascii.jp/elem/000/001/246/1246548/に掲載されている。

今までのWindows環境だと、Cygwinを導入したり、VirtualBox等で仮想Linux環境を構築して利用していたが、OSレベルでLinux環境が利用できるようなった。(サブシステム化と区別して呼んでいる)

個人的には、Windowsでもbashが利用できて、Linux端末へssh接続する場合にPuTTYを使わなくて済むようになったのがうれしい。MacのOSXの利点だったLinux互換に対する狙い撃ちのようにも見える。まだまだ執筆時点ではβ版ではあるが、Microsoftが本腰を入れて対応してくるので楽しみである。

導入手順

  • Anniversery Updateを適用後、Windowsの機能の有効化または無効化を選択する。

  • Windows Subsystem for linuxを選択してインストールする。

  • 開発者モードを選択する

  • コマンドプロンプトからbashを実行してLinux環境をインストールする。なお、インストール先はユーザーディレクトリ(C:\Users[user-name])配下にイメージが作成される。
    ここで入力するユーザ名とパスワードは、インストールするLinux環境のRootユーザになる。ログインしているWindows10のユーザアカウントと同じでも異なるものでも構わない。
> bash
:
新しい UNIX ユーザ名を入力してください:hoge
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
:
  • インストールが完了すると、bashのコンソール起動アイコンが作成されるので、今後Linux環境を起動する場合はこのショートカットから起動する。

ちなみにLinux環境からでもCドライブやDドライブへの参照は可能で、/mnt/c/または/mnt/d/にマウントされた状態になっている。現在β版のためか、日本語が正しく表示されないケースが多々あるがいずれ改善されると思われる。

Windows Subsystem for Linuxの初期設定

  • リポジトリURLの変更
    /etc/apt/source.listを開いてURLを変更する
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://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse 
  • ロケールの変更
    現状だと日本語が文字化けするので、/etc/default/localeを開いて英語に変更しておく
LANG=en_US.UTF-8
if [ -n "$SSH_CLIENT" ]; then text=" ssh-session"
fi
export PS1='\[\e[1;31m\]\u@\h:\w${text}$\[\e[m\] '
export LS_COLORS='di=0;31:ow=0;31:tw=0;31:ln=0;32:so=0:pi=0:ex=0;34:bd=0:cd=0:fi=0:or=0:mi=0'
  • パッケージのアップグレード
    apt-getコマンドのパッケージリポジトリを最新にしておく
sudo apt update
sudo apt upgrade