Snow LeopardでのRuby環境再構築
先月末にリリースされたSnow LeopardをMacBook Pro にインストールした。何だか動作が軽くなったと喜んでいたのもつかの間、開発系を中心に、動かないプログラムがいくつも出てきた。どうもアーキテクチャがi386からx68_64になったことが原因らしい。
一番困ったのはRubyが上手く動かないことだ。ネイティブコンパイルされたgemのモジュール群を入れ直す必要がある。しかし、それらのモジュールが参照しているライブラリも影響を受けているので、MacPortsとそれで入れたライブラリを全部入れなおす。以下はいくつかのサイトを見ながら自分が行った手順だが、記憶違いもあるかもしれないのであくまで参考ということで。
最新版Xcodeのインストール
まずはXcodeをSnow Leopardのインストールディスクに含まれる最新版にアップデートする。これをしないといろいろ上手くいかない。
MacPortsの削除
$ sudo port -f uninstall installed
Rubygemsの削除
全てのgemsのリストをバックアップしてから削除。
$ gem list | cut -d" " -f1 > installed_gems
$ sudo gem list | cut -d" " -f1 | xargs sudo gem uninstall -aIx
MacPortsの再インストール
次に Installing MacPorts から Snow Leopard 用のバイナリ(早くもリリースされていた!)を取ってきてインストールして、各portを再インストールする(これらはx68_64でコンパイルされるらしい)。
自分の場合は以前の日記でインストールしているportをリストアップしていたので、手間が減ってよかった。加えて、
$sudo port install ruby
でruby @1.8.7-p174をインストールしたが、Snow Leopard では標準でインストールされるRubyのバージョンが1.8.7に上がっているのでこれは不要だったと思う。。
Rubygemsの再インストール
$ wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
$ tar xzvf ./rubygems1.3.5
$ cd rubygems-1.3.5
$ ./configure
$ make
$ sudo make install
各gemの再インストール
cat installed_gems | xargs sudo gem install
ほとんどのgemをこのやり方で正しくインストールできた。ただし、MacPortsを使わずにコンパイルしたライブラリや、どこかからバイナリを落としてきたライブラリを参照しているgemはその限りでない。自分の場合は RSRubyが上手くインストールできなかった。
その他、Snow Leopardの導入によって、TextMateの挙動がおかしくなったり(後日修正パッチがリリースされた)、Cisco VPN Clientが使えなくなったり、SIMBLが使えなくなったり、いくつか不具合も出てきたが、それ以外、概ね快適に使えている。RSRubyの件だけは早急に何とかしたい。Rを自分でコンパイルしさえすればなんとかなると思う。