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 のバージョンが新しすぎるのが原因。
引用元:Rails 2.*系で「rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+)」エラー | GENDOSU@NET
基本的にRails3.0.5より前のRailsでは、rakeのバージョンは0.8.7を使う
で、以下のようにしてアンインストールしようとしてもできないみたい。
$ 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
で、見事成功。よかったよかった。