[だいたい解決] Cygwin(babun)で、ansible&node&javaの開発環境構築


0)Windowsのlinux風シェル環境は、babunで概ねなんとかなりそう。

自分的にはだいたい解決したので、簡単な付記の後、うまくいった結果と留意点を記す。

(付記) 経緯:windows環境でansibleする際に、便利な配布物cygwin-ansibleを使わせていただいたことをきっかけに、cygwin周りをいろいろとカスタマイズしようと考え(方針はこちら)、試行錯誤し、半日かけて、oh-my-zshやjavaは割合普通に動かせるようになった。...というあたり、一部の人には知られている、気合入ったカスタマイズ版cygwinである、babun(a windows shell you will love)の存在を知る。 名前がなんかひっかかるのはさておき、、 Babunの本家サイトを見るに、パッケージ管理ツールはじめいろいろ工夫されているし、インストーラーは、windows側の環境を汚さない模様。ということで、ちょっと使ってみた・・・

1) ansible導入

インストール後、コマンドラインでbabunとタイプし、とりあえず、python2.7系の存在を確認。
ということで、ansibleを入れる。
この投稿を参考にさせていただきつつ:

babun update
pact install python-paramiko python-crypto gcc-g++ wget openssh python-setuptools
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
easy_install pip
pip install ansible

babunを再起動すると、

» ansible --version
ansible 1.9.4

と、無事立ち上がる。

2) node&npmを使ってみる。

windowsにインストール済のnode&npmにアクセス(バージョンコントロールは必要になった際に考えることとする)。

$ node -v                                                                                                                                                                     v4.2.1
$ npm -v
2.14.7

cygwinでnodeするのは、改行コードの関係でdos2unixを入れたりなど下調べの段階ではいろいろと面倒そうな気がしていた。が、babunの
本年の作業記録によるとあっけなく動きそうに思えたので、いくつかnpmでパッケージを入れてみる。

npm install -g livescript mithril coffee-script webpack

ひとまずは問題なく、/cygdrive/c/Users/kmr_r/AppData/Roaming/npm/以下に各コマンドが入った。

  • 一点問題発生 : coffeeコマンドでbabun上でREPLできるが、lscコマンドでlivescriptのREPLは実行できない(lsc -cでのlsファイルのコンパイルはできる。windowsのコマンドプロンプトからはlscも実行可能)。

...何かはまりどころがあるのかもしれないが、とりあえずnodeできている。念のため、、実行したlivescriptを付記。

test.ls
times = (x, y) ->
  x * y

console.log times(2,3)

lscでJSにコンパイルし、nodeでJSを実行。

$ lsc -c test.ls
$ node test.js
6

2)git&java(&sbt)使ってみる。

依存関係毎gitを入れ、git clone:
さらにそのまま、scalaのwebフレームワークfinatraをsbtで実行してみる。

pact install gettext-devel
git clone https://github.com/twitter/finatra
./sbt helloWorld/run

javacでこけたが、cygwinにおける"\"と"/"の扱いに難あることは経験済のため、出典の指示に従い、java_wrapper経由で、windows上のJavaがこのあたりをcygwin上で適切に扱えるようにする(よくわからない人は、試行錯誤編を参照)。

結果、無事、localhostでJVM上のwebフレームワークfinatraが立ち上がる(JVMの実行環境はwindows側のもの)。

3)今後の方針

とりあえず、cygwin(babun)で一通りの開発作業はできるようになったが、過度の期待はせずに、ansible経由でdockerなどの上の開発環境管理も行えるようにしていく。