我见过很多
You have already activated rake 0.9.x, but your Gemfile requires rake 0.x.x
errors.
当然,它们可以通过以下一些方法来解决(暂时或始终)。
bundle exec rake
上面的方法是有效的,但你总是必须输入bundle exec。
也可以通过以下方式解决
bundle update
但捆绑更新也会更新您的其他宝石。
有人说可以解决
gem uninstall unwanted_rake_version
是的,可以安装不需要的耙子,但它仍然标记为已激活,因此仍然给出错误。
一种解决方案是在 Gemfile 中显式指定 rake 版本,但这不是问题。它是关于如何设置默认的 rake 版本,或在 rvm 或其他类型的 ruby 安装中激活该特定版本?
可以通过提供可选的第一个参数(即 gem 版本)来激活较新版本的 rake。
$ rake 0.9.2
或者,如果您有旧版本的 rake,您可以手动更新 rake 脚本以包含此参数(或指定您想要的任何特定版本)。
rake 脚本通常位于 /usr/bin/rake (如果使用 rvm,则位于 ~/.rvm/gems/ruby-#{ruby-name}/rake )。并规定在解析参数之前要加载的 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 范围。
欲了解更多信息,卡茨article http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/很好地解释了二进制文件如何在 rubygems 下运行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)