2015-05-31 55 views
1

我安裝一個寶石,我收到以下錯誤:(?和1.11.0爲什麼Ruby中的悲觀版本約束(〜>)不匹配?

ERROR: While executing gem ... (Gem::ImpossibleDependenciesError) 
    oauth2-0.9.4 requires multi_json (~> 1.3) but it conflicted: 
    Activated multi_json-1.11.0 instead of (>= 0, ~> 0) via: 

我的理解是,悲觀的版本約束~>都應該匹配除了最後一位,這樣1.3應匹配1.11但不是2.0。這個錯誤信息描述了什麼?

更新:好像1.11可能與錯誤中提到的其他地方的~> 0需求衝突。刪除~> 0或將其更改爲~> 1的作品。作爲一個問題,爲什麼~> 0匹配1.x?

+1

它確實匹配,但是您切斷了錯誤的重要部分,下一行 - 還有什麼要求'multi_json'具有什麼約束? – sevenseacat

+0

這是我創建的一個gem,它具有''〜> 0','> = 0''的multi_json約束。我沒有意識到'〜> 0'不會匹配1.如果我刪除'〜> 0'或者將它改成'〜> 1',它就會被安裝。謝謝! – Grokify

回答

1

正確〜> 1.3應該匹配1.x系列中的任何內容。

Gem::ImpossibleDependenciesError意味着它說的很多。某些其他依賴項(無論它在via:後打印)需要與~> 1.3允許的版本不同的版本。