你可以在Gemfile中有多个版本的宝石吗?[英] Can you have multiple versions of a gem in a Gemfile?

本文是小编为大家收集整理的关于你可以在Gemfile中有多个版本的宝石吗?的处理方法,想解了你可以在Gemfile中有多个版本的宝石吗?的问题怎么解决?你可以在Gemfile中有多个版本的宝石吗?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想要的是这样的东西:

gem 'rack', '1.3.3', '1.2.4'

因此,当宝石需要不同版本的机架时,它们都被安排.这可能吗?

推荐答案

您可以设置允许的宝石的intervall

gem 'rack', '<1.3.3', '>1.2.4'

它将加载所选时间内的最实际一个.

但我不认为您可以要求不同的GEM版本. 如果将在不同的版本中加载GEM,则每个类和模块都必须让它自己的命名空间避免覆盖GEM的方法.

其他推荐答案

否,您无法同时加载多个GEM版本.这是因为,随着KNUT突出显示,代码会发生冲突.宝石如何知道使用1.2.4机架,而不是the grack的1.3.3版本?它不能.

此外:对于Bundler,所有GEM依赖性必须必须满足,以便捆绑进程完成.如果您有一个明确需要机架1.2.4(i.e = 1.2.4在该gem的= 1.2.4中),那么然后另一个需要一个机架版本的gem,那么这些GEM版本将冲突和捆绑程序将告诉您所以.

其他推荐答案

我来了这个问题,因为我想要黑名单是越野车的某些破碎的上游宝石版本.虽然你不能做

gem 'rack', '1.3.3', '1.2.4'

you can 有多个!=约束,以排除您知道要有问题的版本:

gem 'rack', '!= 1.3.0.beta2', '!= 1.3.0.beta'

本文地址:https://www.itbaoku.cn/post/786327.html