您已经激活耙0.9.0,但你的Gemfile需要耙0.8.7

问题描述:

我试图运行Rails项目, 我得到您已经激活耙0.9.0,但你的Gemfile需要耙0.8.7

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 

谢谢Dobry Den,干杯。但我必须做更多。 这里是解决方案(适用于我)。 我曾在Gemfile中添加

gem 'rake','0.8.7' 

,这是不存在的,但我的rails新版本自动安装耙(0.9.0)。

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

如果我理解你没有问什么,你需要打开你的Gemfile文件,并更改行...

gem 'rake', '0.8.7' 

...到...

gem 'rake', '0.9.0' 
+0

如果我想使用0.8.7,而不是0.9? – Kir 2011-05-21 06:47:54

+5

默认情况下,您的Gemfile中未指定rake gem,因为它是Rails依赖项。如果您将耙宝石更新为0.9.0,那么您的系统上仍然有0.8.7宝石(请查看'gem list')。我很确定,如果'gem'rake','0.8.7'仍然在'Gemfile.lock'中指定,它仍然会使用0.8.7 gem而不会出现问题。如果没有,那么在将'gem'rake','〜> 0.8.7''添加到Gemfile(不是.lock)后,尝试运行'bundle'并查看它是否有任何内容。 – danneu 2011-05-21 06:55:39

+0

我同意@Dobry Den。 – 2011-05-21 17:27:52

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

然后,你需要告诉捆绑来更新它的使用你的应用程序的版本耙:

bundle update rake 

它会更新Gemfile.lock你。

+2

谢谢。它的工作对我来说 – khanh 2011-05-26 10:04:55

+2

这不适合我。当我运行这个命令时,它和'bundle install'完全一样,并且显示它使用相同的rake版本。它不更新它。 – 2011-11-01 16:09:45

+4

我不得不将gem'rake','version#'添加到我的gemfile中,然后运行'bundle update rake'来正确更新我的gemfile.lock。任何无法获得此解决方案的人员都可以为他们工作。 – 2011-11-01 16:22:39

耙0.9.0打破轨道。

在这里看到:Rake 0.9.0 'undefined method 'task' '

使用bundle exec rake,而不是rake在正确的版本上运行耙。

如果您正在使用像

rake db:migrate 

使用这个代替耙命令:

bundle exec rake db:migrate 

这将是直到导轨和/或耙工作的最新版本的情况很好。

+1

有关“最新版本的导轨和/或耙子”在一起工作的情况只有在特定的,未命名的时间点以及在使用中的工作流程的某些特定假设下才有意义。我认为这意味着“你正在使用尖端的铁轨,耙子还没有赶上。”但是,这种情况可以通过“bundle exec”或“编辑Gemfile”方法来解决,而且这些方法在没有内部兼容性问题的情况下也可以解决问题,但这只是一个混乱的工作流历史。 – jackr 2012-07-12 18:13:48

+0

最后有人解释了错误信息。 – fabspro 2013-03-07 12:19:32

+0

谢谢,这正是我的问题 – Student22 2017-08-22 16:35:13

添加到您的Gemfile

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

,然后卸载耙0.9。0

我有这个问题(与其他的宝石,没有耙),我能够通过

gem uninstall <complaining gem> 
gem install <complaining gem> 

bundle install 
bundle update 

注意解决它,关键字“须藤”未使用(即sudo的包安装),因为这可能会将您的宝石置于您的导航应用可能不会搜索的目录中。

哦,看,这是未来。对我来说,它抱怨我在0.9.5时安装了rake 10.x。不太清楚,不熟悉不够用Ruby来真正深入到发生了什么事,最近的版本号,但我所做的就是:

gem uninstall rake 
gem install rake -v 0.9.5 

强制系统安装耙该应用程序想要的版本(我是Octopress)。

+2

未来打来的,它想借你的锤子裤子。 – 2013-03-07 04:27:22

+0

嗨,这是未来。我听说锤子裤子终于卷土重来了。 – subdigit 2018-01-12 16:41:53

在你的Gemfile中指定你想要的版本。

gem 'rake', '0.9.0' 

然后

bundle update rake 

你需要使用捆绑exec来运行rake任务

bundle exec rake db:migrate