Mac OSX の、Ruby を1.8.4にアップデートしつつ、Railsも1.1.4に

マックのrubyを、デフォルトで入っている1.8.2から1.8.4にバージョンアップした。その際に、ちょっと手間取ったところがあったのでメモしておく。

以下のページからruby 1.8.4 をダウンロード。

オブジェクト指向言語Ruby - ダウンロード

ここで普通に、./configure でインストールしたら、後々Railsを立ち上げる時に、「dyld: NSLinkModule() error」というエラーに見舞われた。ググルと同じようなエラーを経験している方の回避策を発見。

tsimoの日記 - Rubyをソースコードからコンパイルする

こちらのページでも、readlineのインストールが必要と書かれていますね。

A::Watch - OSXにRuby on Rails環境をインストールする方法

これらを参考に

wget ftp://ftp.gnu.org/gnu/readline/readline-5.1.tar.gz
tar xzvf readline-5.1.tar.gz
cd readline-5.1
./configure --prefix=/usr/local
make
make install

この後に、rubyをコンパイル

tar xzvf ruby-1.8.4.tar.gz
cd ruby-1.8.4
./configure --with-readline-dir=/usr/local
make
make install

ソースからコンパイルをすると、デフォルトでは /usr/local/bin にインストールされるらしい。既存の環境も、とりあえず残しておきたかったので、/usr/bin のrubyをリネームして、シンボリックリンクを張ることにする。

mv /usr/bin/ruby /usr/bin/ruby1.8.2
ln -s /usr/local/bin/ruby /usr/bin/ruby
mv /usr/lib/ruby /usr/lib/ruby1.8.2
ln -s /usr/local/lib/ruby /usr/lib/ruby

RubyGems とかも再インストールになるのかな?と以下から、最新をゲット。

RubyForge: RubyGems: ファイルリスト

tar xvfz rubygems-0.9.0.tgz 
cd rubygems-0.9.0
ruby setup.rb 

mv /usr/bin/gem /usr/bin/gem.old
ln -s /usr/local/bin/gem /usr/bin/gem

Rails も再インストール。1.1.2 から1.1.4 になりました。

gem install rails

mv /usr/bin/rails /usr/bin/rails1.1.2
ln -s /usr/local/bin/rails /usr/bin/rails

あとは、既存のプロジェクトの、config/environment.rb のRAILS_GEM_VERSION をRAILS_GEM_VERSION = '1.1.4'に変更したら、既存のRailsアプリケーションが、Ruby1.8.4 + Rails 1.1.4 の環境で走るようになった。