Rails Bundle, конфликты с драгоценными камнями, лучший способ это решить

#ruby-on-rails #gem #bundle #conflict

#ruby-on-rails #rubygems #комплект #конфликт

Вопрос:

Я столкнулся с проблемой при использовании Bundle для разрешения конфликта gems.

не удается активировать builder (~> 2.1.2, среда выполнения) для [«activemodel-3.0.8», «actionpack-3.0.8», «railties-3.0.8»], уже активирован builder-3.0.0 для [«cucumber-0.10.6»] (Gem::LoadError)

Итак, это означает, что для active * требуется builder версии 2.1.2, когда cucumber хочет версию 3.0.0. Просто, но …

Что я должен с этим делать? Огурец низкого качества? Я попробовал обновить пакет, но… последняя версия активной модели, пакета и рельсов — 3.0.8. Как я мог легко узнать версию cucumber, совместимую с active builder?

Тогда, каков общий метод решения такого рода ситуаций в целом?

Ответ №1:

Это странно; Bundler должен привязываться builder к версии v2.1.2 при проверке зависимостей.

Сначала попробуйте запустить bundle update , чтобы Bundler повторно разрешил все ваши зависимости. Это должно корректно заблокировать builder до версии v2.1.2.

В противном случае вы можете запустить builder версии v2.1.2, добавив его в свой Gemfile :

 gem `builder`, `~> 2.1.2'
  

Затем запустите bundle update builder . Это должно добавить версию v2.1.2 к вашей Gemfile.lock , которая должна нормально работать с Cucumber (требуется только> = 2.1.2).

Смотрите недавнее сообщение в блоге Иегуды Каца о управлении версиями Gem и Bundler для получения более подробной информации.