rake バージョンが新しすぎるって怒られた

久々に改修のrailsアプリで、DBのフィールドの変更があったので、migrateのファイルを作成して、

$ rake db:migrate

ってすると、

$ rake db:migrate
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.

(以下省略)

ググってみると、どうやらrake バージョンが新しすぎるってことみたいです。

このエラーは rake のバージョンが新しすぎるのが原因。
基本的にRails3.0.5より前のRailsでは、rakeのバージョンは0.8.7を使う

引用元:Rails 2.*系で「rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+)」エラー | GENDOSU@NET

で、以下のようにしてアンインストールしようとしてもできないみたい。

$ gem uninstall rake -v=10.0.4
ERROR:  While executing gem ... (Gem::InstallError)
    cannot uninstall, check `gem list -d rake`

いわれるままに、`gem list -d rake`をしてみる

$ gem list -d rake

*** LOCAL GEMS ***

rake (10.0.4, 0.9.2.2)
    Author: Jim Weirich
    Rubyforge: http://rubyforge.org/projects/rake
    Homepage: http://rake.rubyforge.org
    License: MIT
    Installed at (10.0.4): /Users/hoge/.rvm/gems/ruby-1.8.7-p302@global
                 (0.9.2.2): /Users/hoge/.rvm/gems/ruby-1.8.7-p302@global

    Ruby based make-like utility.
trachurus:univplan eiichi$ gem uninstall rake
Remove executables:
	rake

in addition to the gem? [Yn]  y       
Removing rake

You have requested to uninstall the gem:
	rake-0.9.2.2
rvm-1.11.3.7 depends on [rake (>= 0)]
rvm-1.11.3.3 depends on [rake (>= 0)]
rails-2.3.5 depends on [rake (>= 0.8.3)]
rubygems-bundler-1.0.2 depends on [rake (>= 0)]
If you remove this gems, one or more dependencies will not be met.
Continue with Uninstall? [Yn]  y                 
Successfully uninstalled rake-0.9.2.2

でも、アンインストールしたい10.0.4ではないし、そもそも0.9.2.2もアンインストールできていない。

$ gem list

*** LOCAL GEMS ***

(省略)
rails (2.3.5)
rake (10.0.4, 0.9.2.2)
(省略)

そこで、再度ググって、見つけたサイトと同じようにまねしてみた。

gem uninstall のときに -i オプションを使ってディレクトリを指定して消している。なるほどね。早速、まねして実行してみましょ。

引用元:今度は rake/rdoctask is deprecated. - 日々是笑心

$ gem uninstall rake -i /Users/hoge/.rvm/gems/ruby-1.8.7-p302@global

Select gem to uninstall:
 1. rake-0.9.2.2
 2. rake-10.0.4
 3. All versions
> 2
Successfully uninstalled rake-10.0.4

で、見事成功。よかったよかった。