在Gemfile中指定rubygem时,〜>和> =有什么区别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我经常在Gemfile中看到以下符号(~>)。

gem "cucumber", "~>0.8.5"
gem "rspec", "~>1.3.0"

我知道符号(>=)只是大于等于,但是(~>)符号是什么意思呢?

提问于
用户回答回答于

~>0.8.5在语义上相当于:

gem "cucumber", ">=0.8.5", "<0.9.0"

这个问题的简单方法,可以将最后一个数字增量到任意值,但是字符串前面的数字不能大于提供的值。因此~>0.8.5,任何值对于第三位数(5)都是可以接受的,只要它大于或等于5,但是前面的0.8必须是“0.8”。

例如,你可能会这样做,如果你认为0.9版本将实现一些大更改,但整个0.8.x发行版系列只是修复。

然而,简单地使用">=0.8.5"会表明任何低于(或等于)0.8.5的版本是可以接受的。没有上限。

用户回答回答于

如下所示:

gem.add_runtime_dependency "thor", "~> 0.18.1"

扫码关注云+社区