トップ «前の日記(2008-05-08) 最新 次の日記(2008-05-12)» 編集

Route 477



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も忘れずにインストールしよう。