Ошибка spork с пакетом exec?

Каждый раз, когда я запускаю 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 не работает и как я могу это исправить.


person disappearedng    schedule 28.08.2011    source источник


Ответы (2)


В вашем Gemfile вы можете указать:

gem 'spork', :version => 0.8.5

Также вы можете удалить более новый spork:

gem uninstall spork -v=0.9.0.rc8
person Christian Fazzini    schedule 19.03.2012

Возможно, ваша проблема уже решена (я полагаю), но я столкнулся с аналогичной проблемой в последние несколько дней и нашел причину этой ошибки. Это связано с версией всех необходимых драгоценных камней при использовании сборщика. Когда указан только "spork", активируется RubyGems и ищет подходящую версию. Но это обходит указанную версию из Gemfile, которую будет использовать сборщик. Только когда используется "bundle exec spork", сборщик может найти версию в Gemfile. В вашем случае «spork» указывает на установленный гем с версией «0.9.0», а «bundle exec spork» использует «0.8.5». Доступен флаг ("bundle exec --binstubs"), который создает папку "bin" (> = bundler 1.0) и помещает в нее все исполняемые файлы, указанные в Gemfile. Вместо «bundle exec spork» допустимо писать «bin/spork».

Найдите "Gem Versioning and Bundler: Doing It Right" Иегуды Каца, он все объясняет более подробно и очень мне помог.

person justahero    schedule 24.01.2012