每当我运行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
没有,以及我如何解决这个问题。
答案 0 :(得分:0)
也许你的问题已经解决了(我会假设),但是我在最近几天遇到了类似的问题并找到了这个错误的原因。它与使用bundler时所有需要的gem的版本控制有关。仅提供“spork
”时,RubyGems
将被激活并查找适当的版本。但是这会绕过捆绑程序将使用的Gemfile
指定的版本。只有在使用“bundle exec spork
”时,捆绑程序才能从Gemfile
中查找版本。在您的情况下,“spork
”指向已安装的版本为“0.9.0
”的gem,而“bundle exec spork
”则指向“0.8.5
”。
有一个标志可用(“bundle exec --binstubs”)创建一个“bin
”文件夹(> = bundler 1.0)并将Gemfile指定的所有可执行文件放入其中。而不是“捆绑exec spork”,写“bin/spork
”是有效的。
通过 Yehuda Katz 搜索“Gem Versioning and Bundler:正确行事”,它更详细地解释了所有内容并帮助了我很多。
答案 1 :(得分:0)
在您的Gemfile中,您可以指定:
gem 'spork', :version => 0.8.5
你也许想删除更新的spork:
gem uninstall spork -v=0.9.0.rc8