我见过很多
You have already activated rake 0.9.x, but your Gemfile requires rake 0.x.x
错误。
当然,可以通过以下某些方法(临时或永久)解决它们。
bundle exec rake
上面的方法有效但你总是要输入bundle exec。
它也可以通过
解决bundle update
但捆绑更新还会更新您的其他宝石。
有人说它可以通过
来解决gem uninstall unwanted_rake_version
是的,可以安装不需要的rake,但它仍然标记为已激活,因此仍然会出错。
一种解决方案是在Gemfile中明确指定rake版本,但这不是问题。它是关于如何设置默认rake版本,或在rvm或其他类型的ruby安装中激活该特定版本?
答案 0 :(得分:8)
可以通过提供可选的第一个参数(即gem版本)来激活较新版本的rake。
$ rake 0.9.2
或者,如果你有一个旧版本的rake,你可以手动更新rake脚本以包含这个参数(或指定你想要的任何特定版本)。
rake脚本通常位于/ usr / bin / rake(或〜/ .rvm / gems / ruby - #{ruby-name} / rake,如果使用rvm)。并且在解析参数之前指示要加载它们的gem版本。
在我的系统上看起来像这样。
$ cat ~/.rvm/gems/ruby-1.9.2-p180/bin/rake
#!/home/tomcat/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'rake' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'rubygems'
version = ">= 0"
if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
version = $1
ARGV.shift
end
gem 'rake', version
load Gem.bin_path('rake', 'rake', version)
重要的一点是gem 'rake', version
更改version
将迫使rake到特定的版本系统/ rvm。
欲了解更多信息,Katz'article很好地解释了二进制文件如何在rubygems下运行
答案 1 :(得分:4)
当我得到该错误时,它通常是在依赖于不同版本的rake的项目之间工作的结果。一个简单的解决方法是
gem uninstall rake
然后在您的项目目录中(假设您正在使用Bundler),只需
bundle
答案 2 :(得分:-1)
我总是首先卸载rake,命令如下:
gem uninstall rake -v=version
然后安装另一个版本
gem install rake -v=version