ruby gem依赖性问题,在运行bundle安装之前需要知道gem是否兼容?

ruby gem依赖性问题,在运行bundle安装之前需要知道gem是否兼容?,ruby,rubygems,dependencies,Ruby,Rubygems,Dependencies,我正在按照一些教程设置GEM文件。 如果旧版本的gem在rubygems.org上指定其依赖关系为rake~>10.3 这是否意味着rake的更高版本将无法与此gem一起工作?gem依赖性是一个个案基础。没有可能说任何gem会或不会向后兼容,您必须进行测试。版本越“接近”,就越有可能兼容,但这绝不是一条你可以遵循或信任的规则 另外,我也不知道你是否理解它的语法~>10.3并不意味着rake必须是版本10.3。这是一个稍微令人困惑的操作数,但将版本限制为版本的子集。rake~>10.3的意思是:1

我正在按照一些教程设置GEM文件。 如果旧版本的gem在rubygems.org上指定其依赖关系为rake~>10.3
这是否意味着rake的更高版本将无法与此gem一起工作?

gem依赖性是一个个案基础。没有可能说任何gem会或不会向后兼容,您必须进行测试。版本越“接近”,就越有可能兼容,但这绝不是一条你可以遵循或信任的规则


另外,我也不知道你是否理解它的语法<代码>~>10.3并不意味着rake必须是版本
10.3
。这是一个稍微令人困惑的操作数,但将版本限制为版本的子集。

rake~>10.3
的意思是:
10.3.0大多数gem都没有向后兼容性,如果更改gem的版本,您可能需要更新代码。实际上,这并不太令人困惑。弯曲箭头操作符
~>
允许最后指定的版本控制级别至少为给定的版本控制级别,但禁止更相关的级别上升。所以
~>5.2
的意思是“至少
5.2
,而且
5.x
x>2
也可以-但是不要给我
6.0
或以上的任何东西”。同样地,
~>5.2.3
意味着
5.2.x
,其中
x>=3
——但是
5.3
上面的所有内容都是不允许的。是的,如果你以前从未见过它,只看到一个指向gem版本号的弯曲箭头,你会感到困惑。。。