捆绑exec的spork错误?

时间:2011-08-28 00:28:45

标签: gem spork

每当我运行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 updategem update甚至是gem update --system,但我仍然看到了这个错误。正在运行bundle exec spork,但我想知道为什么spork没有,以及我如何解决这个问题。

2 个答案:

答案 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