簡體   English   中英

Gemfile Twitter +法拉第

[英]Gemfile Twitter + Faraday

在我的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找不到與寶石“ faraday”兼容的版本:在Gemfile中:

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

TL; DR:嘗試運行bundle update

Bundler試圖找到匹配的寶石,使得它們的所有依賴項也都匹配。 所以考慮一下:

  • 寶石A v1取決於寶石B v1
  • 寶石A v2取決於寶石B v2
  • 寶石C v1取決於B v1
  • 沒有C版本知道如何處理B v2。

在這種情況下,Bundler將選擇(甚至降級)A到v1,以便A和C彼此相鄰運行。

但是,有幾件事可能會阻止這種情況的發生,並且會導致您看到的錯誤:

  1. 沒有A v1,因此根本無法進行匹配。 在這種情況下,您將陷入困境,這些寶石根本無法協同工作。
  2. 您已經安裝了A v2,並且稍后將添加C。 這意味着Bundler需要降級A,但僅運行bundle install時並不需要降級/升級。 您必須特別指出,它需要通過運行bundle update A或對gemfile: bundle update所有gem重新計算依賴性。
  3. 一顆寶石來自git存儲庫。 Git倉庫實際上並沒有rubygems.org上托管的gem之類的版本。 這意味着Bundler將僅獲取最新版本,而無法降級該gem。 在這種情況下,您需要手動指定分支或修訂版。

我的猜測是您正在研究場景2。您已經安裝了法拉第0.8.9版(並已將其鎖定)。 通過添加推特,您之前的鎖需要更新。

但是,請謹慎運行不帶參數的bundle update 它將嘗試獲取您的gemfile中每個寶石的最新版本,而這可能不是您想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM