rake aborted!
You have already activated rake 0.9.0,
but your Gemfile requires rake 0.8.7.
Consider using bundle exec.
(See full trace by running task with --trace)
其實 Rails developer 應該都用 Bundler 了,而且也知道 bundler exec
的用途,但是直到這次事件前大家都沒習慣指定 rake 版本,因為 0.8.7 大家用了兩年都沒事啊,所以都習慣打 rake
而不是 bundle exec rake
。
2-1. Bundler 有個功能是 bundle install --binstubs
,這會建立一個 bin 目錄包含所有 Gemfile 裡面用的執行檔。所以改打 bin/rake
即可。
2-2. 承上,嫌 bin/rake
還是太麻煩? 如果你有用RVM 的話,在專案目錄下放個.rvmrc 加上 export PATH="./bin:$PATH"
,這樣又回到只要輸入 rake
即可。( .rvmrc 的主要用途是指定此專案使用的 Ruby 版本,例如 rvm ree
)
3. 試試Rake,這是一個 script 檢查目錄下有沒有 Gemfile,有的話用 bundle exec rake
,沒有的話用 rake
。