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を消す
XCodeでCocoa-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
動いたっ!!