Bash on Ubuntu on Windows 環境構築

はじめに

今まで色々とWindowsにてUNIX環境を構築してきました。

POSIX API機能を提供するcygwin1.dllを利用し、完全なPOSIXエミュレーションが目標の「Cygwin」や、Cygwinからforkされたmsys-2.0.dllによるライブラリと、一部MinGWからの流れでWindowsネイティブライブラリが含まれる「MSYS2」、どちらも使用してきましたが、LAMPなどのWebアプリケーション開発環境となると、やはりVM上のLinuxを利用した方が何かと楽です。ということで、これまでWindows 10上のVirtualBoxにてCentOSを動かし利用してきました。

しばらくは全然問題なく利用できていたのですが、使用しているノートパソコンのsleepからの復帰が遅く、ハードリセットとかしていたら、いつのまにかVDIファイルが壊れてしまい環境がおじゃんになってしまいました。。。VMはその仮想ディスクファイル1個が壊れてしまったらもう終わりですものね。

そこでしょうがないので、試しで入れていた「Bash on Ubuntu on Windows」を使用することにしました。

Windows上でLinux互換環境を実現する「Windows Subsystem for Linux(WSL)」が、Windows 10 Anniversary Updateより組み入れられ、その上で動くBashシェル環境が「Bash on Ubuntu on Windows(BoW)」です。Anniversary Updateの時は、Ubuntuのバージョンは14.04だったのですが、Creators Updateでは16.04に上がっています。色々と不具合も解消されていますし、標準リポジトリで入るgitもバージョンが2.7.4と、まあまあ新しいものがインストールできるようになりました。

私の場合、BoWは既にAnniversary Updateの時に入れていましたが、Creators Updateに更新してもUbuntuバージョンのは14.04のままでした。そこで、一旦既存のBoWをアンインストールして、新しいBoWをインストールしてみました。

Bash on Ubuntu on Windowsの再インストール

まず、既にインストール済みのBash on Ubuntu on Windows(BoW)をアンインストールする。
Windows PowerShellを起動して、以下のコマンドを実行。

> LxRun /uninstall /full

続いて、BoWの再インストールします。既にインストール済みのBoWのアイコンをダブルクリックするか、PowerShell上からBashを起動すれば、再インストールプロセスが走ります。途中ロケールの設定や、UNIXアカウントの設定があります。

hoge@woody:~$ cat /etc/issue
Ubuntu 16.04.2 LTS \n \l

はい、確かにバージョンが上がりました。
続いて、リポジトリのURLを日本にあるミラーサーバ(ftp.jaist.ac.jp)の指定に変更します。

まずは、念のため今の「source.list」をバックアップして、それからsedコマンドで一気に置換してやります。

$ cd /etc/apt
$ sudo cp -p source.list source.list.ORG
$ sudo sed -i -e 's/\/\/.*.ubuntu.com/\/\/ftp.jaist.ac.jp\/pub\/Linux/g' sources.list
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-updates main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-security main restricted universe multiverse

そんでもって、アップデート。

$ sudo apt update
$ sudo apt upgrade

今は、「apt-get」ではなく「apt」だけでもOKなのですね。

開発環境やRubyのビルドに必要なライブラリもインストール。

$ sudo apt install build-essential libssl-dev libreadline-dev libsqlite3-dev zlib1g-dev

Windows上のホームフォルダにある主要なディレクトリのシンボリックリンクをはっておきます。
「/mnt/c」が、WindowsのCドライブにマウントされています。

$ cd
$ ln -s /mnt/c/Users/furuya/Documents .
$ ln -s /mnt/c/Users/furuya/Downloads .
$ ln -s /mnt/c/Users/furuya/Desktop .

続いて、BoWのホームディレクトリの中身を、Windowsのエクスプローラからアクセスしやすいようショートカットを作ります。エクスプローラのアクセスバーより、「C:\Users\hoge\AppData\Local\lxss\home」と打てば、そこにユーザディレクトリ(例えば「hoge」)が表示されますので、そのショートカットをデスクトップ上とかに置いておけばOK。

ただ注意があって、Windows側から、WSLのファイルシステムにアクセス(作成or更新)するのは厳禁なようです。

Do not change Linux files using Windows apps and tools – Windows Command Line Tools For Developers

一方、BoWからWindowsのファイルシステムにアクセスするのはOKなので、いっそのことBoWのホームディレクトリをアクセスしやすいディレクトリ(例えば、c:\home\hogeなど)にしてしまうというのも手ですが、後で不具合があっても困るのでこのまま(C:\Users\hoge\AppData\Local\lxss\home\hoge)にしておきます。

続いて、ターミナルソフトも標準のものから、「wsl-terminal」に変更します。実体はminttyですが、インストールして起動すればそのままbashが起動します。マウスでのテキスト選択、コピーペーストなどはBoW標準のものよりもこちらの方が使いやすいと思います。

GitHub – goreliu/wsl-terminal: Terminal emulator for Windows Subsystem for Linux (WSL)

MS ゴシック、Consolasなどのフォントでも良いのですが、日本語の文字間が空いてしまうのがものすごくきになるので、私はやっぱりVLゴシックです。

VL Gothic Font Family

ZIPファイルを展開して、VL-Gothic-Regular.ttfとVL-PGothic-Regular.ttfを、それぞれ右クリックして「インストール」とすればインストールされます。あとは、wsl-terminalのOptionのTextにてフォントを設定します。

テーマも標準から変更して、今はこんな感じです。

wsl-termnal

今後は、この環境で色々やってみます。

引き続きどうぞ

 

広告

Bash on Ubuntu on Windows 環境構築」への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中