首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gemfile Twitter + Faraday

Gemfile Twitter + Faraday
EN

Stack Overflow用户
提问于 2014-02-15 10:39:10
回答 1查看 419关注 0票数 0

在我的个人档案里

代码语言:javascript
复制
source 'https://rubygems.org'
ruby '2.1.0'
gem 'rails', '4.0.1'
gem "faraday"
gem "faraday_middleware"
gem "twitter", github: 'sferik/twitter'

如果我跑了

代码语言:javascript
复制
$ bundle install

我得到了

邦德勒找不到兼容版本的创业板“法拉第”:在Gemfile: 推特(>= 0)红宝石依赖法拉第(~> 0.9.0)红宝石(0.8.9)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-15 11:24:09

TL;DR:试着运行bundle update

邦德勒试图找到匹配的宝石,使它们的所有依赖项也匹配。因此,请考虑一下:

  • gem A v1依赖于B v1
  • gem A v2依赖于B v2
  • gem C v1依赖于B v1
  • 没有一个版本的C知道如何处理B v2。

在这种情况下,邦德勒将选择(甚至降级)A到v1,这样您就可以在彼此旁边运行A和C。

然而,有几件事情可能会阻止这种情况的发生,这将导致您所看到的错误:

  1. 没有一个v1,所以根本无法匹配。你被困在这种情况下,那些宝石根本就不会一起工作。
  2. 您已经安装了一个v2,稍后将添加C。这意味着Bundler需要降级A,但是它只运行bundle install时不会降级/升级。您必须明确地说,它需要通过运行bundle update A或为您的宝石文件中的所有宝石:bundle update重新计算依赖项。
  3. 其中一个宝石来自git存储库。Git存储库并没有像托管在rubygems.org do上的gems那样的版本。这意味着,邦德勒将只获取最新版本,不能降级的宝石。在这种情况下,需要手动指定分支或修订。

我猜您正在看场景2,您已经安装(并锁定)了faraday的0.8.9版本。通过添加twitter,需要更新以前的锁。

但是,在没有参数的情况下运行bundle update时要小心。它将尝试获取最新版本的每个宝石在您的宝石文件,这可能不是你想要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21796379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档