你如何激活或设置默认耙?
我见过很多
You have already activated rake 0.9.x, but your Gemfile requires rake 0.xx
错误。
当然,它们可以通过以下某些方法(临时或永久)解决。
bundle exec rake
上面的方法有效,但你总是要输入bundle exec。
它也可以通过解决
bundle update
但捆绑更新还会更新您的其他gem。
有人说它可以解决
gem uninstall unwanted_rake_version
是的,可以安装不需要的rake,但它仍然标记为已激活,因此仍然会出错。
一种解决方案是在Gemfile中明确指定rake版本,但这不是问题。 它是关于如何设置默认rake版本,或在rvm或其他类型的ruby安装中激活该特定版本?
可以通过提供可选的第一个参数(即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 gem 'rake', version
更改version
将强制rake到特定版本系统/ rvm宽。
有关更多信息,Katz的文章很好地解释了二进制文件如何在rubygems下运行
当我得到该错误时,它通常是在依赖于不同版本的rake的项目之间工作的结果。 一个简单的解决方法
gem uninstall rake
然后在您的项目目录中(假设您正在使用Bundler)
bundle
我总是首先卸载rake,命令如下:
gem uninstall rake -v=version
然后安装另一个版本
gem install rake -v=version