Windows 10 Creators UpdateでWindows開発環境を改善してみる

こんにちは、岩津です。

みなさん開発環境構築してますか?
以前は開発環境を構築するのに1日がかりで構築するなんてよくあることで、下手すれば2〜3日使ってしまって青い顔になることもありますよね?
仕事で使うパソコン(PC)が新しくなる時は嬉しい反面、その開発環境の構築をやり直すと思うとかなり憂鬱、そんなことはないでしょうか。

最近はmacOS環境であればHomebrewなどを使って環境構築、Linux環境でもChefやAnsibleで環境構築自動化ですとか、仮想マシンやDockerを使ってホストOSの違いを特に意識することなく開発環境の構築が手軽に行えるようになってきました。
開発環境自体がクラウド上にあるので、ローカルの開発環境自体が不要と言う人もいますよね。

普段仕事で使うPCがWindowsという人は多いと思いますが、私の仕事用PCもWindowsのため今回はWindowsの開発環境構築について書きたいと思います。
※あくまで私個人の経験を例とした個人的な見解を多分に含みます

Windowsでの開発構築となると、使用するプログラム言語の実行環境を整えるところから始まるので、
・プログラム言語のダウンロード&インストール
・プログラム言語用のパッケージマネージャーのダウンロード&インストール(あれば)
・パッケージに含まれないミドルウェア(DB/フレームワーク等)のダウンロード&コンパイル&インストール
などなど、使用するプログラム言語が複数あるとさらに手数が増えます。

本番環境がLinux上の場合、Bash等の検証環境としてローカルにLinux環境の構築とかもやっておきたいところです。
Bashスクリプトの手軽な実行確認となると古くはCygwin、MinGWがありますが今だとMSYS2、Git for WindowsのGit Bashあたりでしょうか。
「今ならAではなくてBを使うのが定石」とかあるので、時期により読み替えが必要になりますので気をつけなくてはなりません。
また、インストールするバージョンの組み合わせによって不具合が出たり、インストールする以外の面倒な部分というもあったりするので要注意です。

ここまで作業をしていると、だいたい徐々に悪い方にハマりだし、
「私はただBashから呼び出すPHPプログラムを使って、外部のAPIを叩きたいだけなのに一体何をしているんだろう」
と思い始め、得るべき結果よりも環境構築をすること自体が目的化することもままあります。

もっと他の方法がないものでしょうか。

こんなことを感じながら、2016年8月にWindows 10 Anniversary Updateとしてリリースされた”Bash on Ubuntu on Windows”によって、Windows環境でBashが利用できる(というかUbuntuの環境がWindows上で動く)数年前のWindowsならちょっと考えられない方法が出てきました。
2016年当時、期待を胸に自分のPCにAnniversary Updateを適用してみました。

Anniversary Update適用後に「Windowsの機能の有効化または無効化」にて”Windows Subsystem for Linux (Beta)”を有効にし、いくつか設定を行う必要がありますがWindows 10の標準機能でUbuntuの環境が利用できるようになるのは魅力です。
※インストール方法についてはQiitaやBuild Insiderに詳しい記事が掲載されていますのでそちらを参照ください

そして結論から言うと2016年時点では少し日本語環境に問題があり、私の環境では手軽に利用できるという目的が果たせないため結局あまり利用ことなく2017年を迎えます。

どのような問題かというと以下のような問題がありました。
(今からインストールする人は解決済みなので、最後の方まで読み飛ばしてください)

 Anniversary Update(2016年)の”Bash on Ubuntu on Windows”


インストールされた”Bash on Ubuntu on Windows”の起動を行います。
スタートアップから起動ができます。

そして起動後がこちら。

ターミナルが起動されますが、以下のように表示が欠けている部分があります。
この時点でちょっと嫌な予感がしますね。

ターミナルのウインドウをリサイズしてみました。
欠けていた部分がちゃんと表示されるようになりました。

それでは簡単なPHPのプログラムを動かすためapt-getでPHP5をインストールします。

そしてvimでコードを書いていきます。

英数字の入力では問題なかったのですが、日本語も入力しようとするところで詰まりました。
標準のターミナルではIMEの利用ができず、日本語のキー入力自体ができません。

仕方ないのでエディタからコピー&ペーストでなんとかします。

貼り付けました。
日本語(マルチバイト文字)部分が崩れて表示されてしまっています。

 

 

 

 

なんとか保存も行えますが、vimでファイルを開くと前述のように表示が崩れてしまいますので非常に編集がしにくいです。

Anniversary Updateのバージョンでは標準のターミナルでは日本語対応ができないことがわかったので、当時はごくごく限られた用途にしか使っていませんでした。
そして2017年4月にリリースされた”Windows 10 Creators Update”へ続きます。

Creators Update(2017年)の”Bash on Ubuntu on Windows”


2017年4月にリリースされた”Windows 10 Creators Update”ではターミナルの日本語表示に関する問題が修正されたと聞き早速確認してみます。

 

 

 

 

 

 

 

 

 

 

アップデートは”Windows 10 アップグレード アシスタント”を使用して行いました。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

何事もなく完了。
早速”Bash on Ubuntu on Windows”を起動し、vimで編集してみます。

 

 

 

 

 

 

 

 

 
IMEが利用できる!
vim上の表示も正常に!

 

 

 

 

 

 

catコマンドでの表示やプログラム実行結果の表示でも問題無いようです。
これでAnniversary Updateの時につまずいていた日本語表示の部分はクリアできました。

※Anniversary UpdateからのアップデートだとUbuntuのバージョンは14.04 LTSのままですが、Windowsコマンドプロンプトで”Bash on Ubuntu on Windows”の再インストールを行うことで16.04へのアップグレードが行えます。必要な人は忘れずにやっておきましょう。

まとめ


Creators Updateにより日本語の表示問題も改善され、私的には”Bash on Ubuntu on Windows”の開発ツールとしての利用しやすさはかなり向上しました。
なによりWindowsの標準機能として利用できる”Bash on Ubuntu on Windows”であれば、あれこれダウンロードせずにすぐ利用できるのも精神的に楽でした。
Windows上の仮想マシン環境と比較すると長所短所があるかと思いますが、使い分けした方が良いポイントなどが見えてきたらまた記事にしてご紹介したいと思います。