Monthly Archives: 8月 2016

Bash on Windowsを入れてみてやってみたこと

出遅れてしまいましたが、8月頭に公開されたWindows 10 Anniversary Updateについて、書きます。

目当てはもちろんBash on (Ubuntu on) Windows

他にも色々変わっているようですが、僕はこのためにアップデートしたんだと言うくらい、この機能に期待していました。導入の仕方はこの辺りを参考にすると良いと思います。

http://qiita.com/Aruneko/items/c79810b0b015bebf30bb

僕が入れてみたもの

ssh

標準のターミナルがCommand Promptで、日本語とかがうまく表示されなかったりするので、とりあえず、これを入れて、PuttyとかPoderosaでアクセスしたい!こんなことせずにmsys2やcygwinみたいにminttyでアクセスできると良いんだけどね。

http://qiita.com/ubnt_intrepid/items/84a56a01cf7081401917

こちらの記事では、/etc/ssh/sshd_configに以下の表記が必要ということだったけど、PasswordAuthentication yesは不要で、ちゃんと鍵認証できました。

UsePrivilegeSeparation no
PasswordAuthentication yes

LAMP環境

まあ、王道的使い方の一つというか、Web開発するときに、マカーたちがローカルに環境をホイホイ立ててる間にWindowsっ子は(Windows版で環境を立てると微妙に違って動かないとか言われて)仮想マシンをセットアップしなければならなかったことがなくなるのは良いですね!

$ sudo apt-get install php5 php5-mysql mysql-server
$ php -S localhost:8000

これでローカル8000ポートでPHPが動くことを確認できました。

ただ、MySQL部分だけはWindows版を動かしたほうが早いかも!

PHP7

Bash on Windows のUbuntuは14.04 LTS準拠らしいです。ちょっと古いですよね!PHPも5が標準のようです。

次の記事を見ると、16.04にすることもできるみたいですが、あまりテストされていないだろうと考えると怖いので、あくまで14.04の範囲で頑張ろうと思います。

http://qiita.com/Aruneko/items/2670f42d36a7508c13bb

せっかくならPHP7を入れてみましょう。

$ sudo add-apt-repository ppa:ondrej/php
$ sudo ape-get install php7.0

まあ、普通に入りました。

node環境

これこそやりたいことですよね!今時npmをまともに使えないWindowsは取り残されてた感満載でした!

ただ、

$ apt-get install nodejs

で入るnodejsは古いので、使ってはいけないようです。。
最初これをやってしまってハマりました!

次の記事などを参考にして最新版のnodeをインストールすれば、npmなども最近の記事に書かれているとおりに動きました。

http://qiita.com/TsutomuNakamura/items/7a8362efefde6bc3c68b

$ sudo curl -sL https://deb.nodesource.com/setup | sudo bash -
$ sudo apt-get install nodejs

ただ、現時点でnodejs, npm界隈は流動性が激しく、ほんの半年前の記事に従って操作しても、書き方が変わっていたりして思ったように動かなかったりしました。

とはいえ、これはWindowsの問題じゃない

HHVM, mariadb

PHP7、mysql5.6が動けば別に構わないのですが、せっかくなので、HHVM, Maria DBの組み合わせも動くかどうかやってみました。

結論としては動きました(^o^;)

やり方は、僕の記事が良いのではないでしょうか?

http://www.susumuis.info/entry/2014/06/11/222935

この上で、WordPressなんかもすんなりと動いてしまいました!

せっかくなので、一時的にポートを開けて外部からアクセスしてみて速いかどうかテストしてみましたが、同じWindows上のHyper Vで動かしているHHVM + MariaDBなWordPressの方が速かったです!

SSH for WindowsからBash

今の状態では、Bash on Windowsはあくまで開発者用で、サーバー向けではありませんから、Bashウィンドウを開かないとSSHなどができません!

自宅サーバーのメンテナンスに、リモートデスクトップを使っていますが、スピードの遅いモバイル回線ではこれはきついので、SSHできたら便利です。

一応、SSH for Windowsというのはありますが、リモート越しにコマンドプロンプトになるので、あんまり嬉しくない。(Power Shellとか使いこなせると良いらしいですが。。。)

そこで、SSH for Windowsごしにbashとコマンドを打って、Bashに切り替えられたら便利だなーと思ってやってみたのですが、どうもこれはダメみたいです。

総評

他の方のブログを見させていただいたところによると、Docker動かそうとして動かない。Oracle JavaやOpen JDK動かそうとして動かないなど、色々と動かないものもあるようです。

しかし、とはいっても、 Ubuntuなのが良いです!Ubuntu向けのWebの記事のまんまやって大体動きます!HHVMは長いことMac用のバイナリがリリースされていなかったので、場合によってはかえってWindowsの方がネイティブ環境を立てやすいということになるかもしれません!

今時、Linuxを使うといっても、ソースからビルドして環境を建てられる猛者はあまりおらず、aptやyumなどのコマンドラインで解決するのがほとんどです。ああ、僕が欲しかったのはLinuxではなく、Ubuntu(またはDebian)だったのか〜と痛感しました。

ただ、ターミナルで日本語が欠けて表示されてしまうなど、不完全なところも多い部分は今後に期待です。

また、「開発者モード」にしないとインストールできないので、現場によっては、「開発者モード」への設定が禁止されて使うことができないかもしれません。あと、タブレットでよく使われている32bit版Windows版には提供されていないようです。

そう言った、もろもろのことを考えると、Windowsでcurlやgrepなどのコマンドラインが欲しいという用途では、msys2 が現状では最適のように思います。

しかし、なんといってもUbuntuということで、今後に期待したいと思います!