gemの"undefined method `refresh' for"エラー

/usr/local/lib/ruby/gems/1.8/source_cache を消せば直る。
と思っていたら、~/.gem/source_cache も消さなければ直らなかった。
始めてかも。再現性とか見れないから自信ないけど一応メモ。

[mako@akari]gem list -r > gem.list.txt                                                    [~]
ERROR:  While executing gem ... (NoMethodError)
    undefined method `refresh' for #<Hash:0x1565bac>
[mako@akari]sudo rm /usr/local/lib/ruby/gems/1.8/source_cache                             [~]
Password:
[mako@akari]gem list -r > gem.list.txt                                                    [~]
ERROR:  While executing gem ... (NoMethodError)
    undefined method `refresh' for #<Hash:0x1565b98>
[mako@akari]which gem                                                                     [~]
/usr/local/bin/gem
[mako@akari]locate source_cache                                                           [~]
/Users/mako/.gem/source_cache
/Users/mako/dotfiles/gem/source_cache
/usr/local/lib/ruby/gems/1.8/source_cache
[mako@akari]rm .gem/source_cache

ちなみにこの時のエラーは

gem list --debug -r                                                           [~]
Exception `NameError' at /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:144 - uninitialized constant Gem::Commands::BuildCommand

だった。