Gem bundle exec的Spork错误?

Gem bundle exec的Spork错误?,gem,spork,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) 我的档案: group :development, :test do gem "rspec" gem "rspec-rails" gem "factory_girl_rai

无论何时运行
spork
,我都会收到以下错误:

You have already activated spork 0.9.0.rc8, but your Gemfile requires spork 0.8.5. Consider using bundle exec. (Gem::LoadError)
我的档案:

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
不能工作,以及如何解决这个问题

也许你的问题已经解决了(我想),但我在过去几天遇到了类似的问题,并找到了这个错误的原因。它与使用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),并将文件指定的所有可执行文件放入其中。可以编写“
bin/spork
”,而不是“bundle exec spork”


搜索Yehuda Katz的“Gem Versioning and Bundler:Doing it Right”(Gem Versioning and Bundler:Doing it Right),它更详细地解释了一切,并对我帮助很大。

在Gem文件中,您可以指定:

gem 'spork', :version => 0.8.5
您可能还想删除较新的spork:

gem uninstall spork -v=0.9.0.rc8