WindowsにCygwin+Ruby(rbenv)を入れてveeweeを使うための準備をする
最近流行のVagrant+ChefをWindowsでも試してみたいと思います。Vagrantは1.1からインストーラを使うようになったのでこれはそのまま入れます。
次にChefの動作環境を用意する前に、Vagrantで使うためのboxを作成するveeweeをインストールします。公開されているboxもいくつかありますが、それを使うのは若干不安があるのと、使わないもの(ruby+puppet+chef)を除いたboxを作るためです。
まずはveeweeを動かすためのベースとなるRubyをrbenvでインストールします。
Cygwinのインストール
WindowsでRubyを使う方法はいくつかありますが、Cygwinを入れて自前でビルドする方法にしました。恐らくかなり面倒くさい方法ですが、後々VagrantやChefを使う際にCygwinのsshやrsyncが使えるので便利です。
Cygwin+Ruby(rbenv)のインストールについては、このページが非常にわかりやすいのでこれをベースに進めるのが良いと思います。
Cygwin本体のインストール
上記ページに従ってsetup.exeをダウンロードして実行します。この時インストールするパッケージを選択することになるのですが、ここでは以下の2つのパッケージをインストールします。これは後でapt-cygを使う際に必要となる最低限のパッケージになります。
apt-cygのインストール
Cygwinにパッケージを追加する場合、毎回setup.exeを起動してダイアログからパッケージ選択することになり非常に面倒です。そこでapt-cygをインストールすることによって、yumやaptのようにコマンドラインからパッケージを追加できるようになります。
インストールはページに書いてある手順通りに行います。
$ svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/ $ chmod +x /bin/apt-cyg
これでコマンドラインからパッケージがインストールできるようになります。
$ apt-cyg install vim
Rubyのインストール
Rubyはコンパイル済みのものを使わずに、Cygwinでコンパイルしたものを使います。Cygwin環境へのRubyインストールはいろいろ罠がありました。
コンパイラのインストール
コンパイラはgccパッケージをインストールすれば使えると思ったのですが、これだけではgccコマンドが使えませんでした。gcc4パッケージを追加することによって使えるようになりました。
$ apt-cyg install gcc gcc4
しかしこの状態ではgccコマンドが正常に動きませんでした。試しに適当なソースファイルをコンパイルしようとしたところエラーが出ました。
$ echo "int main() {return 0;}" >> test.c $ gcc test.c /usr/lib/gcc/i686-pc-cygwin/4.5.3/cc1.exe: error while loading shared libraries: cygmpfr-4.dll: cannot open shared object file: No such file or directory
調べたところ、"libmpfr4"パッケージを追加すれば良いと言うことが分かりました。
$ apt-cyg install libmpfr4
これでようやくgccが動作するようになりました。
ライブラリ・ツールのインストール
Rubyをビルドするために、このページに書いてあるライブラリとツールをインストールします。微妙にパッケージ名が違うものがあったので調整しました。
$ apt-cyg install git \ make \ patch \ libncurses-devel \ openssl-devel \ readline \ libsqlite3-devel \ libxml2-devel \ libxslt-devel
rbenvのインストール
rbenvは手順通りにインストールを行います。
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ source ~/.bash_profile
ruby-buildのインストール
rbenvに対してビルド・インストール機能を追加するためのruby-buildプラグインをインストールします。これもページに書いてある手順通りに行います。
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/rucby-build
Rubyのインストール
後はruby-buildの機能を使ってRubyをビルド・インストールします。
$ rbenv install --list : : 1.9.3-p374 1.9.3-p385 1.9.3-p392 1.9.3-preview1 1.9.3-rc1 2.0.0-dev : :
1.9.3-p392を入れることにします。Cygwinでビルドするとかなり遅いので気長に待ちます。
$ rbenv install 1.9.3-p392 $ rbenv rehash $ rbenv global 1.9.3-p392 $ ruby -v ruby 1.9.3p392 (2013-02-22 revision 39386) [i386-cygwin]
まずはRubyのインストールまで完了しました。次はここにveeweeを追加します。