RubyGems更新後のGem::GemRunner (NameError)

Debianに入っているrubygemsのパッケージは0.9.4ベースだ。これを

$ gem update --system

してrubygems自体を最新版にアップデートした。現時点での最新版は1.1.1だ。ところが、更新後にgemを使おうとすると

uninitialized constant Gem::GemRunner (NameError)

というエラーが出る。

これは、ローカルでコンパイルした新しいRubyGemsが/usr/bin/gem1.8を生成するが、/usr/bin/gemは依然として0.9.4のままであることが原因。

$ cd /usr/bin
# ln -sf gem1.8 gem

してやると、とりあえず治る。

なお、libgems-ruby1.8パッケージは/usr/lib/ruby/1.8以下にライブラリを持っているが、更新されたライブラリは/usr/local/lib/site_ruby/1.8以下に入る。後者のほうが$LOAD_PATHの中で前にあるのでたぶん害はないんだろうけど、気になると言えば気になる。