2011-06-14 86 views
3

我遇到麻煩,使用Bundle解決寶石衝突。Rails Bundle,寶石衝突,解決它的最好方法

不能激活助洗劑(〜> 2.1.2,運行時)爲[ 「activemodel的-3.0.8」, 「ActionPack的-3.0.8」, 「railties-3.0.8」],已經激活助洗劑-3.0.0 for [「cucumber-0.10.6」](Gem :: LoadError)

所以這意味着主動*需要builder v 2.1.2當黃瓜需要版本3.0.0。 簡單,但...

我應該怎麼做? 低檔黃瓜? 我試過了一個軟件包更新,但是...接觸了最新版本的活動模型,pack和railties是3.0.8。 我怎麼能知道容易黃瓜版本與主動建設者兼容?

那麼,一般來說解決這種情況的一般方法是什麼?

回答

2

這很奇怪;在檢查依賴關係時,Bundler應該將builder鎖定到v2.1.2。

首先,嘗試運行bundle update讓Bundler重新解析所有依賴關係。這應該正確鎖定生成器到v2.1.2。

如果做不到這一點,你可以將其添加到您的Gemfile強制建設者V2.1.2:

gem `builder`, `~> 2.1.2' 

然後運行bundle update builder。這應該將v2.1.2添加到您的Gemfile.lock,這應該適用於Cucumber(它只需要> = 2.1.2)。

查看Yehuda Katz最近的博文Gem versioning and Bundler瞭解更多詳情。