Ruby Gem 依赖性问题,需要在运行捆绑安装之前知道 GEM 是否兼容?



我正在按照一些教程设置宝石文件。 如果旧版本的 gem 将其依赖项指定为 rake ~>10.3 on rubygems.org 这是否意味着更高版本的 Rake 不适用于此宝石?

rake ~>10.3的意思是:10.3.0 <= version < 11.0.0。依赖约束并不是rake必须完全是版本10.3.0

我唯一可以肯定地说的是,除非该捆绑包包含该范围内的rake版本,否则该捆绑包将拒绝安装。

宝石真的可以与更高版本的rake一起使用吗?或。这取决于代码的实际作用!这个宝石的旧版本可能是(?)在rake v11.0.0发布之前编写的,因此当时无法知道它是否兼容。

您可以创建自己的旧 gem 版本副本并尝试放宽/删除依赖约束,但我不建议这样做;最好只升级所有代码以使用较新的(最好是最新版本)版本,或者在绝对必要时降级其他库以实现兼容性。

Gem 依赖关系是逐案处理的。没有办法说任何宝石都会或不会向后兼容,你必须进行测试。版本越"接近",它就越有可能兼容,但这绝不是您可以遵循或信任的规则。

此外,我不知道您是否理解其中的语法。~> 10.3并不意味着 rake 必须是版本10.3.这是一个有点令人困惑的操作数,但将版本限制为版本的子集。

最新更新