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

ruby gem dependency issue, need to know if a gem is compatible before running bundle install?

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

Gem 依存关系视具体情况而定。没有办法说任何 gem 会或不会向后兼容,您必须进行测试。 "closer" 版本越多,就越有可能兼容,但这绝不是您可以遵循或信任的规则。

另外,我也不知道你是否理解它的语法。 ~> 10.3 并不意味着 rake 必须是版本 10.3。这是一个有点混乱的操作数,但将版本限制为版本的子集。

rake ~>10.3 表示:10.3.0 <= version < 11.0.0。依赖约束是 而不是 表示 rake 必须完全是版本 10.3.0.

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

gem 实际上 可以与更高版本的 rake 一起使用吗?可能是。这取决于代码实际做什么!这个gem的旧版本可能(?)是在rake v11.0.0发布之前写的,所以当时无法知道它是否兼容。

可以 创建您自己的旧 gem 版本的副本并尝试 loosening/removing 依赖约束,但我不推荐它;最好只升级所有代码以使用更新的(最好是最新的)版本,或者在绝对必要时降级其他库以实现兼容性。