Windows+Vagrant+Chef+Gitのインストールをしていたときに、なんか混乱したので、これは頭を整理するための単なるメモです。 こんなところでハマる人はいないと思うが。。
何に混乱したか?
インストールの過程で、MinGW や Ruby が入っていき、いったい何がどう使われているのか分からなくなった。
環境
- Windows7 64bit
- MinGW/Cygwin 入れてない
- Ruby 入れてない
- Git 入れてない
このような逆境からのスタートです。
混乱の要因1:Vagrant
- 「Vagrant は、『gem install vagrant』だと、古いバージョン(1.0.7とか)が入っちゃうので、純粋なインストーラーで入れるべし!」という記述を見た
- よしインストール -> コマンドプロンプトから vagrant が呼べるようになった!
- よしこれで ruby も使えるようになったな -> (カチャカチャカチャ…)
ruby -v
(ッターン!)-> 「'ruby' は、内部コマンドまたは(中略)認識されていません」 - あれ?ruby 使ってない??←ここで混乱
Ruby はいずこ?
~中略~
REM Run Vagrant...
"%EMBEDDED_DIR%\..\embedded\bin\ruby.exe" "%EMBEDDED_DIR%/../embedded/gems/bin/%~n0" %*
~中略~
組み込みの ruby.exe
を使っていた。なんか vagrant の実行がモッサリしている気がしたのは、この長い bat ファイルのせいか?しかし、インストールすると 400MB 以上も HDD を消費するのがちょっとアレな上に ruby を使わせてくれないとはね。。
混乱の要因2:Chef
- 「Chef は gem でも入れられるけど Windows 版のインストーラーもあるよ!」という記述を見た
- よしインストール -> コマンドプロンプトから knife が呼べるようになった!
- よしこれで ruby も使えるようになったな -> (カチャカチャカチャ…)
ruby -v
(ッターン!)->ruby 1.9.3p484 (2013-11-22) [i386-mingw32]
キター - ・・・・あれ?でも
ruby.exe
はC:\opscode\chef\embedded\bin
にあるんだけど、なんで呼べるようになった? <- ここで混乱
Ruby が呼べる理由
システムの環境変数 PATH に C:\opscode\chef\bin;C:\opscode\chef\embedded\bin
が追加されていた。embedded なのに、こちらは使わせるポリシーらしい。
混乱の要因3:Git
- 「Chef で作った cookbook は Git で管理すると良いかも!」 という記述を見た
- よし http://git-scm.com/ からインストール(vagrant も ssh 使うしちょうどいいや) -> git & ssh おk
すいません勢いで書いてみましたがここは特に混乱しませんでした。PATH が通ってるおかげで、 C:\opscode\chef\embedded\bin\ruby.exe
もしっかり呼べます。ただ、chef の embedded\bin とのハイブリッドになるので、今後何かハマるかもしれません。
まとめ
Windows ならではの苦労があります。