BoW(Bash on Ubuntu on Windows)をかっこよくしようとしたらちょっと躓いた話

久しぶり(1年以上ぶり)の更新になります。

記事にするネタはあっても、やっぱり能動的に記事にしようとする意思がないとダメですね。

とりあえずメモとして残しておきたいことがあったので、更新することとなりました。

Bash on Ubuntu on Windows

今回の記事はBash on Ubuntu on Windows(以下、BoW)が導入済みであることが前提になります。

BoWは2016年8月2日のWindows 10 Anniversary Updateにて登場したものです。個人的にアップデート内容の中で一番注目度が高かったのでは? とも思っているくらいです。

簡単に言えば、Windows上でBashが利用できるものになります。

msdn.microsoft.com

というわけで、私もわくわくしながら導入したのです。

ですが、素のままのBoWはコマンドプロンプトで実行されることもあり、端的に言ってダサい。

環境を作るだけ作って満足してしまうという私の悪癖もあって、特に利用することもなく時は流れて行きました。アップデートの時期から随分と経った今になって記事にしているのは、つまりはそれまでほぼほぼノータッチだったということからです。

どうやってダサくなくするか

BoWはそのまま使うとダサい。

それは何故か?

まあ、そこは個人の好みとかもあると思いますが、私から見ればコマンドプロンプトだからダサいんですよね。

というわけで、そこをなんとかしたい。

ターミナルエミュレータなんかを探してみると、まあいろいろ見つかりますよね。

有名所だとminttyとかConEmuあたりになると思います。

今回は私の好みからminttyを採用しました。

wsltty

BoWをminttyでまともに使うとなると、当然ながらもろもろ設定が必要になります。

そういうの面倒だな~一気にやってくれないかな~な人におすすめなのがwslttyになります。

github.com

ここでダウンロードできるインストーラを実行すれば、面倒な設定までやってくれた上でminttyによるBoW環境が出来上がってしまうとのこと。

実際にインストーラを実行してみると、導入自体はサックリと終わってしまいました。サックリと行き過ぎてどうしていいかわからなくなるレベルです。

デスクトップを見てみるとショートカットが出来ていました。

f:id:zwei_222:20170627194206p:plain

これでwslttyの導入は完了……?

wslbridge error: failed to start backend process

まあ、これだけで済んでいたら今頃私はこの記事を書いてはいません。

出来上がったショートカットから実行してみると、minttyは起動してもBoWは利用できない。

具体的には、下の画像のようになりました。

f:id:zwei_222:20170627194728p:plain

なんでやって感じです。

 wslbridge error: failed to start backend process

エラーの内容はまあ、wslbridgeのバックエンドプロセスがスタートに失敗したと。

当たり前ではありますが、複数個出来上がったショートカット全部がこんな感じでうまく起動できません。

インストーラを実行するだけでウィザードなんかもない、ただそれだけのインストール手順で一体なにを失敗したのか……。

解決方法

これ以上引っ張っても仕方ないので、もう私が解決できた方法書いちゃいます。

早い話が、wslbridgeのbackendをこっちでmakeしました。

以下の手順はBoWで行っています。

きっとこの作業が、クソダサBoWを見る最後の作業となるでしょう。

$ git clone https://github.com/rprichard/wslbridge.git
$ cd wslbridge/backend
$ make
 以下、make プロセス
     ・
     ・
     ・

$ cp ../out/wslbridge-backend /mnt/c/Users/{ユーザ名}/AppData/Local/wsltty/bin/

そうして、もう一度ショートカットを実行してみると、無事Bashが立ち上がりました。

終わりに

終わってみれば単純なことですが、躓いた当初は調べてもあまり情報も見つけられず、わりと苦労しました。

果たして、わりと苦労して導入したこのBoW環境。

まともに利用するときは来るのだろうか……。

f:id:zwei_222:20170627201044p:plain

また、こんなものが表示された頃に会いましょう(?)