已经激活的rake版本与Gemfile所需的版本不同,可以防止rake命令
这是我的错误:
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 `' /Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/boot.rb:4:in `' /Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/application.rb:1:in `' /Users/AaronWilliamson/Desktop/Ripelist-Classifieds/Rakefile:4:in `' LoadError: cannot load such file -- bundler/setup /Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/boot.rb:4:in `' /Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/application.rb:1:in `' /Users/AaronWilliamson/Desktop/Ripelist-Classifieds/Rakefile:4:in `' (See full trace by running task with --trace)
我无法执行任何佣金任务,这似乎是我所有其他问题的根源。 几天前我运行rake命令时不是这样的。 任何人都可以解释这里发生了什么,以及如何让我的应用回到正轨? 我撞墙了。 另外, bundle exec
并没有为我解决问题的根源。 我过去从来没有这样做过,现在还没有用。
编辑2:您应该查看bundle update
并稍微更改您的工作流程。 请参阅此问题以获得进一步的帮助。
原始答案
这是一个简单的问题,当你的gemset的rake版本比你的Gemfile.lock
提到的版本号更新时会发生。
正如错误消息中所提到的,您可以使用bundle exec
来使事情正常工作。
我在这种情况下的解决方案就是删除Gemfile.lock
如果我不太担心其他gem版本及其无限的依赖项。 否则,您可以尝试删除Gemfile.lock
中的一行,其中讨论了rake的版本。 运行bundle install
,世界应该是一个快乐的地方。 ( 编辑2 :运行bundle update --source
而不是此。不要这样做。)
PS:尝试使用gemsets并使用rvm为不同的项目组织你的gem 。
编辑
我更喜欢使用rbenv来管理安装,项目的所有gem都使用bundle install --path
选项驻留在vendor/bundle
。 稍后使用bundle exec
每个gem命令进行范围调整。
因此, rails s
成为bundle exec rails s
。 在我看来,如果它意味着事情将保持清洁并且诸如此类之类的冲突不会发生,那么更多的打字就更好了。
你可以使用rubygems-bundler
来解决这个问题。 运行以下命令:
$ gem install rubygems-bundler
$ gem regenerate_binstubs
然后再试一次你的佣金。
一个对我有用的简单解决方案是简单地运行bundle update rake
。
我有一个类似的问题,我对从我的Gemfile.lock
删除一行感到怀疑,它看起来很hacky并且前缀bundle exec
对每个rake命令的不便也不是一个选项。 我通过首先进入我的Gemfile.lock
来解决这个Gemfile.lock
,看看有什么版本的rake
(在我的例子中它是11.1.2)。 我的想法是卸载rake
并安装此版本。 运行gem uninstall rake
给出了这个输出:
选择要卸载的gem:
- 耙10.5.0
- 耙11.1.1
- 耙11.1.2
- 耙11.2.2
- 耙11.3.0
- 所有版本
我卸载了rake-11.2.2
和rake-11.3.0
。 这解决了我的问题
用这个:
gem install rake -v "version-you-want"
根据这个解决方案(对我有用): https : //stackoverflow.com/a/23668399/4260090
您可以使用rubygems-bundler
解决它
在终端中键入以下命令:
$ gem install rubygems-bundler $ gem regenerate_binstubs
它现在应该工作
输入以下命令:
bundle update rake
我尝试了另一种方法,即删除Gemfile.lock
然后运行bundle install
。 之后我运行rake db:migrate
。 一切正常。
虽然我不认为删除Gemfile.lock
是不好的做法,但可能是; 谁知道。
如前面的答案中所提到的,这是一个简单的问题,当你的gemset的rake版本比你的Gemfile.lock
提到的版本号更新时会发生。
调试它的最简单方法是运行bundle update
。
其他方法可能是删除Gemfile.lock
并运行bundle install
或只是删除Gemfile.lock
中与rake版本对应的行并尝试bundle install
。 但这有时可能会破坏Gemfile。 我更喜欢第一种方法,因为它是最安全和最简单的方法。
进入Gemfile.lock
,找到rake文件并在那里更新版本。
我收到了这个错误:
Gem :: LoadError:你已经激活了rake 11.2.2,但你的Gemfile需要rake 11.1.2。 将
bundle exec
到您的命令可能会解决此问题。
我所做的是将Gemfile.lock
的rake版本从rake (11.1.2)
更改为rake (11.2.2)
。
之后一切都很好。
我有同样的错误:
你已经激活了rake 12.0.0,但是你的Gemfile需要rake 11.3.0。 将“bundle exec”添加到您的命令可能会解决此问题。
我通过运行bundle update
解决了它
这更新了rake版本到我激活的rake版本,一切正常,我希望这对你有用!
我遇到了类似的问题。 我的解决方案是在文件Gemfile中更改rake版本“gem’rake’,’〜> 10.3’”的行,删除Gemfile.lock并运行’bundler install’,新的Gemfile.lock将显示新版本10.3.1。 那一切都会好的。