OS X 10.5標準搭載のRailsがまともに動いてくれない件について

見事に出鼻を挫いてくれました。なんてやつだ。



Macには10.5からRailsが標準搭載されてまして、すぐに開発に入れるらしい・・・と言うことで早速やってみたのですよ。

% rails test
......(なんかズラズラ沢山出てくる)...
% cd test
% script/server

ここでエラー。何でも「rubygemsが見つかんないよ」とのこと。
そこでこちらのサイトに書いてあるように.bash_profileに

export RUBYOPT=rubygems

を追加してみたけど、やっぱりダメ。
今度はubygemsが云々とか。何、ubygemsって。R抜けてんじゃん。
ググってみると、解決方法は「export RUBYOPT=rubygems」を抜くこと。




ダメじゃん。
はい、無限ループ入りました。


にっちもさっちも行かなくなったので、とりあえずRubyGemの方を疑ってみる。
インストールされてるRubygemのバージョンを調べてみるとやたら古いことが判明。

% gem update --system

で更新を試みるも、「インストール成功したぜイヤッフゥ」みたいなことをgemは言ってるのに、バージョンを見てみると変わってないしorz
分からないソフトがあったら、とりあえずMacPortでインストールし直せば良いやという短絡思考で、

% sudo port install rb-rubygems

インストール。






今度はgemが起動しなくなったorz

/opt/local/bin/gem:14: undefined method `ruby_version' for Gem:Module (NoMethodError)

エラーコードでググってみると、今度は実行スクリプトの中にある3行ほどを削除すれば良い、とかって出てきたので試すも、やっぱり動かない。



途方に暮れていると、たまたまクリックしたサイトに解決法が!



私がやった方法を書いておきます。
MacportとXCodeがインストールされていることが前提です。


1.今gemでインストールされているものをメモしておく
どこか適当なディレクトリで

% gem list > list_bef.txt


あとでインストールし直しますので、メモしておきます。


2.Mac標準のgemやrubyを消す
XCodeCocoa-Rubyが使えなくなるんじゃ・・・? などと心配になりましたが、杞憂でした。

sudo rm -r /System/Library/Frameworks/Ruby.framework/
sudo rm -r /Library/Ruby
sudo rm /usr/bin/ruby
sudo rm /usr/bin/gem

ホントに全部消しますね・・・


3.MacPortからRubyとかRubyGemsとかをインストールし直す

% sudo port install rb-rubygems

これで、RubyGemsが依存するもの(Ruby本体とか)を全部インストールしてくれます。
gemの最新版はMacPortにあがってるrubygemsより新しいかもしれないので、

% sudo gem update -system

これで最新にしておきます。


4.Railsを入れる

% sudo gem install rails

必要なものは全部自動でインストールしてくれます。


5.元々gemに入ってたものを入れ直す

% sudo gem install RedCloth acts_as_ferret mongrel fcgi capistrano ruby-openid ferret dnssd hpricot sqlite3-ruby libxml-ruby termios needle ruby-yadis actionwebservice

これで元通りです。





さて、今度こそ・・・




% script/server
=> Booting Mongrel
=> Rails 2.3.2 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server


動いたっ!!