Rails:您已经激活了rake 10.3.1,但是您的Gemfile需要rake 10.2.2(Gem :: LoadError)

问题描述 投票:39回答:17

这是我的错误:

rake aborted!
Gem::LoadError: You have already activated rake 10.3.1, but your Gemfile requires rake 10.2.2. Prepending `bundle exec` to your command may solve this.
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:34:in `block in setup'
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:19:in `setup'
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler.rb:119:in `setup'
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler/setup.rb:7:in `<top (required)>'
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/boot.rb:4:in `<top (required)>'
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/application.rb:1:in `<top (required)>'
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- bundler/setup
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/boot.rb:4:in `<top (required)>'
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/application.rb:1:in `<top (required)>'
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

我无法执行任何耙任务,这似乎是我所有其他问题的根源。几天前,当我运行rake命令时,情况并非如此。谁能解释这是怎么回事以及如何使我的应用恢复正常?我撞墙了。另外,bundle exec并不能解决我的问题根源。过去我从来不需要这样做,现在仍然无法使用。

ruby-on-rails rubygems rake
17个回答
36
投票

编辑2:您应该查看bundle update并稍微更改工作流程。请参阅this question以获取更多帮助。


原始答案

这是一个简单的问题,当您的宝石集的耙版本比Gemfile.lock提到的版本号新时。

如错误消息中所述,您可以使用bundle exec使工作正常。

在这种情况下,我的解决方案是仅删除Gemfile.lock,如果我不太担心其他gem版本及其无穷的依赖关系。否则,您可以尝试仅删除Gemfile.lock中有关rake版本的一行。运行bundle install,世界应该再次成为幸福的地方。 (编辑2:运行bundle update --source代替此。不要这样做。)

PS:尝试将gemsets and organising your gems with rvm用于不同的项目。

编辑

我现在更喜欢使用rbenv来管理安装,并且使用vendor/bundle选项将项目的所有gem驻留在bundle install --path中。以后用bundle exec限制每个gem命令。

因此,rails s变为bundle exec rails s。在我看来,多打字是更好的选择,如果这意味着事情将保持干净并且不会发生诸如此类的冲突。


0
投票

我尝试了另一种方法,即删除sudo apt-get install nodejs ,然后运行Gemfile.lock。之后,我运行bundle install。而且一切正常。


0
投票

如前所述,这是一个简单的问题,当您的宝石集的耙版本比Gemfile.lock提到的版本号新时。


0
投票

进入bundle install,找到rake文件并在那里更新版本。


0
投票

我有相同的错误:


0
投票

我遇到类似的问题。我的解决方案是在文件Gemfile中更改耙版本“ gem'rake','〜> 10.3'”的行,删除Gemfile.lock并运行“ bundler install”,新的Gemfile.lock将显示新版本10.3.1。然后一切都会好的。


0
投票

我遇到了这个问题:


0
投票

这也对我有用:bundle update puma


-2
投票

对于Rails版本5或6,请尝试使用“ rails”命令:


32
投票

您可以使用rubygems-bundler解决此问题。运行以下命令:

$ gem install rubygems-bundler$ gem regenerate_binstubs

然后再试一次耙。


32
投票

对我有用的简单解决方案是只运行bundle update rake


23
投票

我有一个类似的问题,我对从Gemfile.lock中删除一行持怀疑态度,这似乎很麻烦,并且给每个rake命令加上bundle exec带来的不便也不是一种选择。我首先进入Gemfile.lock以查看其中存在哪个版本的C0(在我的情况下为11.1.2),以解决此问题。我的想法是卸载rake并安装此版本。运行rake给出以下输出:

选择要卸载的宝石:

  1. rake-10.5.0
  2. rake-11.1.1
  3. rake-11.1.2
  4. rake-11.2.2
  5. rake-11.3.0
  6. 所有版本

我同时卸载了gem uninstall rakerake-11.2.2。解决了我的问题


6
投票

使用此:

rake-11.3.0

4
投票

键入此命令:

gem install rake -v "version-you-want"

1
投票

根据此解决方案(对我有用):bundle update rake

您可以使用https://stackoverflow.com/a/23668399/4260090解决它>

在终端中键入这些命令:

rubygems-bundler

现在应该可以工作


1
投票

$ gem install rubygems-bundler $ gem regenerate_binstubs 也对我有用。


1
投票

尝试安装nodejs,这解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.