每当我运行spork时,我都会得到以下错误:
You have already activated spork 0.9.0.rc8, but your Gemfile requires spork 0.8.5. Consider using bundle exec. (Gem::LoadError)我的gemfile:
group :development, :test do
gem "rspec"
gem "rspec-rails"
gem "factory_girl_rails"
gem 'spork'
gem 'webrat'
gem 'awesome_print'
gem 'vcr'
gem 'fakeweb'
end我已经运行了bundle update和gem update,甚至gem update --system,但我仍然看到这个错误。运行bundle exec spork可以工作,但是我想知道为什么spork不能工作,以及我如何解决这个问题。
发布于 2012-01-25 06:51:51
也许你的问题已经解决了(我假设),但我在过去的几天里遇到了类似的问题,并找到了这个错误的原因。它与使用bundler时所需的所有gem的版本控制有关。当只提供"spork“时,RubyGems将被激活并查找合适的版本。但这绕过了捆绑器将使用的Gemfile中指定的版本。只有当使用"bundle exec spork“时,捆绑器才能从Gemfile中查找版本。在你的例子中,"spork“指向一个版本为'0.9.0‘的已安装gem,而"bundle exec spork”则使用'0.8.5’。有一个可用的标志("bundle exec --binstubs"),它创建一个"bin“文件夹(Gemfiler1.0),并将>=指定的所有可执行文件放入其中。用"bin/spork“代替"bundle exec spork”是有效的。
搜索Yehuda Katz的"Gem Versioning and Bundler: Doing it Right“,它更详细地解释了一切,对我有很大帮助。
发布于 2012-03-19 15:27:37
在Gemfile中,您可以指定:
gem 'spork', :version => 0.8.5此外,您可能想要删除较新的spork:
gem uninstall spork -v=0.9.0.rc8https://stackoverflow.com/questions/7218262
复制相似问题