最近、Macを捨ててWindowsに乗り換えた。その際に、Macで使用していたCUIにより開発環境をできるだけWindowsに移植できないかと考えた。
BoW(Bash on Ubuntu on Windows)
BoWは、Windows10よりベータ版として提供された、Windows上でLinuxバイナリを実行することができる仕組み。
仮想環境よりもっとミニマルで、内部的にはWindows上で動作するUbuntu互換のAPIを実装している模様。
つまり、Linuxのマシン語をネイティブに実行することができるということ。(しっかりとWindowsのプロセスとして立ち上がる)
このBoW環境が思ったよりもしっかりとしていたため、開発環境を整えてみた。
どんな見た目?
デスクトップにおいたリンクから端末を起動することができる。
逆にどこに不満がある?ってレベル。Bash on Windowsの開発環境 pic.twitter.com/G092w1L6DN
— mjhd (@mjhd_devlion) 2016年11月27日
— mjhd (@mjhd_devlion) 2016年11月27日
インストールすべきもの
まず、BoWのインストールが済んでいることが前提。
こちらを参考に。
次に、VcXsrvをインストールする。これは、X11互換のサーバであり、GUIを表示するために必要。(Xmingをおススメしているサイトが多いが、こちらのほうが安定している)
インストールが終わったら、スタートアップとして登録しておこう。
BoWにて
まず、Win+Rボタンを押し「cmd」と入力しエンターを押す。
コマンドプロンプトが立ち上がるので、ここに「bash」と入力する。これでBoW環境に入ることができる。
ここで、以下のコマンドを実行しよう。
sudo apt-get install aptitude
sudo aptitude install gnome-terminal
これで、gnome-terminalというターミナルエミュレータが入った。
bash上で、「gnome-terminal」と入力することで、新しい端末が立ち上がる。
また、日本語入力ができるよう、以下のコマンドも実行しよう。
sudo aptitude install uim-fep uim-anthy
そして~/.uimを作成し、以下の内容を記述しよう。キーバインドなどは自由でおk。
(define default-im-name 'anthy)
(define-key generic-on-key? '(" "))
(define-key generic-off-key? '(" "))
次に、zshを入れよう。
sudo aptitude install zsh
あとは好みに応じて、各自のdotfilesを入れるといいと思う。
使いやすく
この時点で、~/.bashrcを編集し、以下のように書き足そう。
export DISPLAY=localhost:0.0
export XMODIFIERS=@im=uim
if [ -t 1 ]; then
exec gnome-terminal -x uim-fep -e zsh
fi
これにより、bashコマンドを叩くとすぐにgnome-terminal上でuim-fep、zshを起動することができるようになる。
また、以下のようなファイルを作成することで、cmdを非表示にしたまま、gnome-terminalだけを起動することができる。
terminal.vbs
Set ws = CreateObject("Wscript.Shell")
ws.run "bash", vbhide
あとは煮るなり焼くなり、好きなように環境設定をしよう。
mysql、apacheなどの個人的に必要なソフトウェアも、serviceコマンドから実行できるようなので、逆に他に何がほしいの?というレベル。
MacからWindowsに乗り換えるタイミングとしては最適だったように思える。