2014-02-15 2 views
0

В моей GemfileGemfile Twitter + Фарадей

source 'https://rubygems.org' 
ruby '2.1.0' 
gem 'rails', '4.0.1' 
gem "faraday" 
gem "faraday_middleware" 
gem "twitter", github: 'sferik/twitter' 

если я бегу

$ bundle install 

я

Bundler не смогли найти совместимые версии для гем "Фарадей": В Gemfile :

twitter (>= 0) ruby depends on 
    faraday (~> 0.9.0) ruby 

    faraday (0.8.9) 
+0

это зависит от развития Зависимости bundler ~> 1.0 –

+0

Извините, что вы имеете в виду? Что это? Что мне нужно изменить? – sparkle

+0

, если не определить версию faraday gem, она установит последнюю версию и что она зависит от жгута прошивки 1.0, так что проверьте версию gp ур-спутника. –

ответ

1

TL; Попробуйте запустить bundle update.

Bundler пытается найти драгоценные камни, которые соответствуют таким образом, что все их зависимости также совпадают. Так считает это:

  • камня v1 зависит от B v1
  • жемчужины v2 зависит от B v2
  • камня C v1 зависит от B v1
  • нет версии C, который знает, как ручка B v2.

В этом случае Bundler будет выбирать (или даже понижать) A до v1, чтобы вы могли A и C работать рядом друг с другом.

Однако есть несколько вещей, которые могли бы помешать этому случиться, и это вызовет ошибку вы видите:

  1. Там нет v1, поэтому совпадение не может быть вообще. Вы застряли в этом случае, эти драгоценные камни не будут работать вместе вообще.
  2. Вы уже установили A2, и вы добавляете C позже. Это означает, что Bundler должен отказаться от A, но он не делает понижения/обновления, когда работает только bundle install. Вы должны сказать, что нужно пересчитать зависимости, запустив bundle update A или для всех драгоценных камней в вашем gemfile: bundle update.
  3. Один из драгоценных камней из репозитория git. Репозитории Git действительно не имеют таких версий, как gems, размещенные на rubygems.org. Это означает, что Bundler получит только последнюю версию и не сможет понизить этот драгоценный камень. В этом случае вам нужно указать ветку или ревизию вручную.

Я предполагаю, что вы смотрите на сценарий 2. Вы уже установили (и заблокировали) версию 0.8.9 faraday. Добавляя твиттер, ваша предыдущая блокировка должна быть обновлена.

Будьте осторожны при работе bundle update без аргументов. Он попытается получить последние версии каждого драгоценного камня в вашем gemfile, который может и не быть тем, что вы хотите.

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