Ошибка Spork с комплектом exec? - PullRequest
1 голос
/ 28 августа 2011

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

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

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

gem 'spork', :version => 0.8.5

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

gem uninstall spork -v=0.9.0.rc8
0 голосов
/ 25 января 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» по Иегуда Кац , все объясняется вболее подробно и мне очень помогло.

...