MacOSXでrakeをアップデートする
redmineを1.8.0から1.8.1にアップデートする時にdb:migrate時に以下のようなエラーが出た。
$ rake db:migrate RAILS_ENV="production" (in /Users/username/Rails/redmine-0.8.1) rake aborted! wrong number of arguments (3 for 1) /Users/username/Rails/redmine-0.8.1/rakefile:10 (See full trace by running task with --trace)
これはrakeのバージョンが古いままだったからだ。gem listで確認すると0.8.3なのだが、バージョンを確認すると古いまま。
$ gem list *** LOCAL GEMS *** actionmailer (2.2.2) actionpack (2.2.2) activerecord (2.2.2) activeresource (2.2.2) activesupport (2.2.2) gem_plugin (0.2.3) mysql (2.7) rails (2.2.2) rake (0.8.3) RedCloth (4.1.9) refe (0.8.0.3) $ rake --version rake, version 0.7.3
whichで確認するとパスが/usr/bin/rakeになっている。
$ which rake /usr/bin/rake
そこで旧rakeを移動し、/opt/local/bin配下のrakeへシンボリックリンクを張る。
$ sudo /usr/bin/rake /usr/bin/rake.old $ sudo ln -s /opt/local/bin/rake /usr/bin/rake
パスとバージョンを確認。
$ which rake /opt/local/bin/rake $ rake --version rake, version 0.8.3
この後にredmineのdb:migrateを実行したら問題なく動作。ふー、しかしなんでrakeは/usr/binにあるのだろうか。