2014-10-28 2 views
4

У меня есть 2 драгоценных камней, которые зависят от конфликтующих версий hashie (один требует ~> 1.2.0, а другой требует 3.3.1):Как переопределить зависимость от драгоценных камней?

Bundler could not find compatible versions for gem "hashie": 
    In Gemfile: 
    restforce (>= 0) ruby depends on 
     hashie (~> 1.2.0) ruby 

    omniauth (>= 0) ruby depends on 
     hashie (3.3.1) 

Я хотел бы, чтобы оба драгоценные камни и использовать более позднюю версию хеши. Есть ли способ для меня переопределить одну из зависимостей драгоценных камней?

+0

Bundler явно не допустит этого, и не без оснований. Существует ли более новая версия 'restforce', которая будет хорошо играть с' hashie' 3.3.1? Это может быть самый простой способ решить эту проблему. –

ответ

1

Стандарт советует использовать более высокую версию .

Я делаю так, но я думаю, что у комплектатора есть определенная команда для него.

Сначала удалите линию gem 'omniauth' в вашем Gemfile. Запустите bundle install, затем вы должны добавить еще раз строку с gem 'omniauth' в свой Gemfile, снова запустите пакет.

Если вы посмотрите на Gemfile.lock, установите эту опцию hashie 2.0.5, более высокую совместимость.

отредактировано: почему это работает?

Сначала я проверяю зависимости omniauth с hashie: hashie < 4, >= 1.2, то же самое с restforce: hashie < 2.1, >= 1.2.0. На этом этапе я знаю, что любая версия hashie между 1.2 и 2.0.x должна работать. Затем мы должны удалить ограничение в Gemfile.lock продолжить использование hassie 3.3.1, удалив «omniauth» из Gemfile, это сделано. После этого при установке restforce поставщик обнаруживает, что новая версия совместима с restforce '2.0.5'. И когда вы добавляете снова, omniauth bundler не обновляет зависимости, которые выполняются.

+0

О, ничего себе, это полностью сработало. Почему эта процедура делает драгоценные камни хорошими друг для друга? – user3827303

0

Я думаю, что bundle update на самом деле вы были после. Это сортирует зависимости и устанавливает, при необходимости, различные версии драгоценных камней, давая вам самые современные драгоценные камни.

Будьте осторожны, так как обновление драгоценных камней может привести к проблемам совместимости.

Смежные вопросы