在我的Gemfile中
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找不到gem“faraday”的兼容版本:In 的Gemfile:
twitter (>= 0) ruby depends on faraday (~> 0.9.0) ruby faraday (0.8.9)
答案 0 :(得分:1)
TL; DR:尝试运行bundle update
。
Bundler尝试找到匹配的宝石,使其所有依赖项也匹配。所以考虑一下:
在这种情况下,Bundler会选择(甚至降级)A到v1,这样你就可以A和C相邻。
然而,有一些事情可能会阻止这种情况发生,这将导致您看到的错误:
bundle install
时不会降级/升级。您必须明确说明需要通过运行bundle update A
或gem文件中的所有gem来重新计算依赖项:bundle update
。我的猜测是你正在看场景2.你已经安装了(并锁定了)法拉第版本0.8.9。通过添加Twitter,您需要更新以前的锁。
但是请注意不带参数运行bundle update
。它会尝试获取gemfile中每个gem的最新版本,这可能不是你想要的。