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