你已经激活了rake 0.9.0,但你的Gemfile需要rake 0.8.7

时间:2011-05-21 06:26:27

标签: ruby-on-rails rake

我正在尝试运行rails项目, 我得到了

Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

如果我这样做:“捆绑安装”

但 我正在

You have already activated rake 0.9.0, but your Gemfile requires rake 0.8.7

做着

rake db:migrate

9 个答案:

答案 0 :(得分:239)

首先,检查以确保Gemfile中提到了rake。如果不是,请添加它,并指定“您已经激活”的版本。

然后,您需要告诉bundle更新它为您的应用程序使用的rake版本:

bundle update rake

它会为您更新Gemfile.lock

答案 1 :(得分:42)

您当前正在使用rake命令,例如

rake db:migrate

请改用:

bundle exec rake db:migrate
直到最新版本的rails和/或rake能够很好地协同工作才会出现这种情况。

答案 2 :(得分:23)

我感谢Dobry Den,欢呼老兄。但我不得不这样做。 这是解决方案(适合我)。 我添加了

gem 'rake','0.8.7'

在Gemfile上,但不存在,但是我的新版本的rails会自动安装rake(0.9.0)。

gem uninstall rake删除rake0.9.0之后 在执行bundle update rake之后,我可以创建和迁移数据库。

答案 3 :(得分:8)

Rake 0.9.0打破了铁轨。

见这里:Rake 0.9.0 'undefined method 'task' '

使用bundle exec rake代替rake以正确的版本运行rake。

答案 4 :(得分:7)

在Gemfile中指定所需的版本。

gem 'rake', '0.9.0' 

然后

bundle update rake

您需要使用bundle exec来运行rake任务

bundle exec rake db:migrate

答案 5 :(得分:6)

哦,看,这是未来。对我来说,它抱怨我在需要0.9.5时安装了rake 10.x.不太确定,不熟悉Ruby,真正深入研究最近的版本号发生了什么,但我做的是:

gem uninstall rake
gem install rake -v 0.9.5

强制系统安装应用程序所需的rake版本(对我而言是Octopress)。

答案 6 :(得分:5)

我有这个问题(另一个不是rake的宝石)我能够通过

来解决它
gem uninstall <complaining gem>
gem install <complaining gem>

bundle install
bundle update

请注意,未使用关键字“sudo”(即sudo bundle install),因为这可能会将gem放入rails应用程序可能无法搜索的目录中。

答案 7 :(得分:3)

如果我理解您没有要求的内容,则需要打开Gemfile文件并更改行...

gem 'rake', '0.8.7'

...到...

gem 'rake', '0.9.0'

答案 8 :(得分:3)

将此添加到您的Gemfile

# Rake 0.9.0 break Rails.
gem "rake", "!= 0.9.0"

然后卸载 rake-0.9.0