Mac使いがRuby1.9とRails3のプロジェクトに参戦したときの話

久しぶりのプログラミング仕事で、Railsを触っている。
以前のプロジェクトでRails3には慣れたけど、手元のRubyはバージョン1.8.7のままだった。
今回は1.9.3を使うっていうことなので、環境の整備をした次第。

新しいrubyをインストールしてみる、、、成功。

rvm install ruby-1.9.3-p194 

次にgit clone してきたRails3の新しいプロジェクトで

bundle install

を実行したらエラー発生

ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799: [BUG] Segmentation fault

だそうな。。

まぁ、そうだよね、世の中甘くないよね。
そんな僕に、Google先生からのオススメはこちら↓

RVM vs. MacPorts and the BUG Segmentation fault


参考ページを見ながら、以下の手順を実行する。
(1)$HOME/.rvmrc に以下を追加して、sourceしておく

export CFLAGS="-O2 -arch x86_64"
export LDFLAGS="-L/opt/local/lib"
export CPPFLAGS="-I/opt/local/include"

(2)古いrubyも再インストールしておく

rvm reinstall 1.8.7 --with-openssl-dir=/opt/local

(3)本命の新しいrubyをインストールしてみる...が。

sudo port install libyaml
rvm reinstall ruby-1.9.3-p194 --with-opt-dir=/opt/local

ここでcurlの証明書エラーみたいのが発生。

curl: (60) SSL certificate problem, verify that the CA cert is OK. D

このエラーに対するGoogle先生のオススメはこちら↓

Stack Overflow
Curl Certificate Error when Using RVM to install Ruby 1.9.2


このコマンドを打てばお終い、と↓

curl -L get.rvm.io | bash -s stable

で、さっきの新しいrubyのインストールをやり直し

rvm reinstall ruby-1.9.3-p194 --with-opt-dir=/opt/local

今度は成功!
次はbundle installのやり直し、、、だが、しかし。

ZenTest requires RubyGems version ~> 1.8. Try 'gem update --system' to update RubyGems itself.

gemが古いんだと。久しぶりだといろいろ出るなぁ。。

Google先生曰く↓
gem update がうまくいかないときのメモ


以下のコマンドでgemをupdate

gem install rubygems-update
update_rubygems

gemのupdateが終わったらbundle installの3度目の正直、、、失敗。

Installing capybara-webkit (0.12.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

だってさ。

Installing Qt and compiling capybara webkit

↑ここを参考にこちら↓を実行

sudo port install qt4-mac-devel

かーらーのー、本日4度目の bundle install を実行した結果は...

Your bundle is complete!

よしよし、一件落着。