2008-05-09
■ [mac] Mac OS X Leopardでrubygemsがrequireできない
発端:
/Users/yhara/proj/bookmarklets % ./script/generate Rails requires RubyGems >= 0.9.4. Please install RubyGems and try again: http://rubygems.rubyforge.org
いやgemはあるんだが。
/Users/yhara/proj/bookmarklets % gem --version 1.1.1
LOAD_PATHは?
/Users/yhara/proj/bookmarklets % ruby -e 'p $LOAD_PATH' ["/opt/local/lib/ruby/site_ruby/1.8", "/opt/local/lib/ruby/site_ruby/1.8/i686-darwin9.2.2", "/opt/local/lib/ruby/site_ruby", "/opt/local/lib/ruby/vendor_ruby/1.8", "/opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin9.2.2", "/opt/local/lib/ruby/vendor_ruby", "/opt/local/lib/ruby/1.8", "/opt/local/lib/ruby/1.8/i686-darwin9.2.2", "."]
普通だなぁ。
あ、いや、rubygems.rbってどこにあるんだろう?
/Users/yhara/proj/bookmarklets % locate rubygems.rb /Library/Ruby/Gems/1.8/gems/rubygems-update-1.1.1/lib/rubygems.rb /Library/Ruby/Site/1.8/rubygems.rb /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb
なんじゃこりゃ。Mac変態すぎるだろ…。
そういやgemコマンドの実体はどこにあるんだろ。
/Users/yhara/proj/bookmarklets % which gem /usr/bin/gem /Users/yhara/proj/bookmarklets % ls -l /usr/bin/gem lrwxr-xr-x 1 root wheel 71 2 22 01:29 /usr/bin/gem -> ../../System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem
ふむ。じゃあ、ここに揃えるか。
/Users/yhara/proj/bookmarklets % export RUBYLIB=$RUBYLIB:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8
/Users/yhara/proj/bookmarklets % ./script/generate Missing the Rails 2.0.2 gem. Please `gem install -v=2.0.2 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.
えーー。
結論
めんどくなったので、自分でtgzをダウンロードしてインストールするなどした。
mv /usr/bin/gem /usr/bin/gem_leopard
追記
ブクマコメントで指摘してもらったのだが(ありがとうございます)、デフォルトのgemとMacPortsのrubyを組み合わせて使ってるのがいけなかったっぽい。 そりゃそうか。
というわけで、MacPortsでrubyを入れる人は、rb-rubygemsも忘れずにインストールしよう。