首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Gemfile中指定rubygem时,~>和>=有什么不同?

在Gemfile中指定rubygem时,~>和>=有什么不同?
EN

Stack Overflow用户
提问于 2010-11-28 01:26:45
回答 1查看 31K关注 0票数 129

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

代码语言:javascript
复制
gem "cucumber", "~>0.8.5"
gem "rspec", "~>1.3.0"

我知道符号(>=)只是大于或等于,但是(~>)符号是什么意思呢?它们是相同的还是有任何显著的不同?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-28 01:33:32

那是个pessimistic version constraint。RubyGems将递增提供的版本中的最后一个数字,并使用该数字,直到它达到最高版本。所以~>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的版本都是可接受的。没有上限。

票数 174
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4292905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档