回答
您可以設置允許的寶石
gem 'rack', '<1.3.3', '>1.2.4'
的INTERVALL這將加載所選INTERVALL裏面最實際的一個。
但我不認爲你可以要求不同的寶石版本。 如果一個gem會以不同的版本加載,每個類和模塊必須得到它自己的命名空間以避免覆蓋gem的方法。
不,您無法同時加載多個寶石版本。這是因爲,正如knut強調的那樣,代碼會衝突。寶石如何知道使用Rack的1.2.4
版本而不是1.3.3
版本的Rack?它不能。
另外:在Bundler中,爲了完成捆綁過程,所有的gem依賴關係必須滿足。如果你有一個寶石明確要求機架1.2.4(即= 1.2.4
是在該寶石的gemspec
),然後另一個需要一個版本的機架,如>= 1.3
寶石,那麼這些寶石版本將衝突,Bundler會告訴你如此。
很好的答案!最後一句是否被截斷了? (「那麼這些寶石版本......」)任何機會添加其餘的?我很想閱讀到最後:-) – tjmw
@tjmw:這並不令人興奮......它只是「會衝突,Bundler會告訴你的。」 –
我遇到了這個問題,因爲我想將某些破損的上游寶石版本列入黑名單。雖然你不能做
gem 'rack', '1.3.3', '1.2.4'
你可以有多個!=
約束排除版本,你知道是有問題的:
gem 'rack', '!= 1.3.0.beta2', '!= 1.3.0.beta'
- 1. 你能卸載gemfile中的gem版本嗎?
- 2. Gemfile中的相同gem的不同版本 - 可能嗎?
- 3. 我可以在gemfile中強制創建一個gem的依賴關係嗎?
- 4. 你可以有多個庫嗎?
- 5. 你可以有多個domready事件嗎?
- 6. 你可以在JavaScript中有多個可選參數嗎?
- 7. 你可以在同一個java版本中擁有maven和gradle嗎?
- 8. 你可以在django中引用多個基本模板嗎?
- 9. 你可以在application.cfm中有多個cfapplications?
- 10. jruby有rubyzip gem的版本嗎?
- 11. 你的Ruby版本是2.3.1,但你的Gemfile指定2.3.1(版本相同)
- 12. 你可以在Omega/Drupal 7中有多個node.tpl.php嗎?
- 13. 你可以在where子句中有多個子查詢嗎?
- 14. 你可以有多個HttpSessionStrategy?
- 15. 你的Ruby版本是2.2.4,但你的Gemfile指定2.3.1
- 16. 你的Ruby版本是1.9.3,但你的Gemfile指定了2.2.2
- 17. rbenv你的Ruby版本是2.0.0,但你的Gemfile指定2.1.2
- 18. 你的Ruby版本是2.2.0,但你的Gemfile指定2.1.2
- 19. 我可以在CDH中安裝多個Spark版本嗎?
- 20. 你可以在每個XY軸上有多個圖嗎?
- 21. 最佳做法,爲gemfile中的每個gem添加一個版本?
- 22. 是否可以有多個py3版本?
- 23. 你可以在Heroku上使用舊版本的MySQL嗎?
- 24. Gemfile中的Ruby版本
- 25. 我可以使用Spring有多個bean互連版本嗎?
- 26. 可以同時存在多個版本的Newtonsoft.Json dll嗎?
- 27. 我可以在機器上安裝多個版本的Typescript嗎?
- 28. 你的Ruby版本是2.0.0,但你的Gemfile中指定的2.1.2更新不Gemfile中
- 29. 我們可以在VSTS中有一個jar版本庫嗎?
- 30. 管理Ruby Gem的多個版本
有很多的情況下,新版本的Gems做一個完整的重構,並改變他們的命名空間/模塊名稱。 Mongo 1.x系列從'MongoClient'名稱空間變爲'Mongo :: Client',並且將成爲支持相同gem的多個版本的理想用例。 –
@knut你是什麼意思最實際的? – Kamesh
@Kamesh最高版本號的寶石。 – knut