在 Gemfile 和 Gemfile.lock 中指定版本的"="和"~>"之间的区别



嗨,伙计们!

很抱歉有这样一个基本的问题,但gemfile.lock和/或gemfile中的这些行之间有什么区别?

 /Gemfile.lock or /Gemfile
 mygem (1.1.0)
 yourgem (= 1.3.4)
 hisgem (<= 4.2.1)
 hergem (>= 0.5.1)
 somegem (~> 4.1.5)

我能算出

 hisgem (<= 4.2.1)

意味着低于4.2.1的任何版本的gem都应该工作。类似地,hergem(>=0.5.1)意味着任何大于0.5.1的gem版本都应该工作。但是有什么区别

 yourgem (= 1.3.4)

 somegem (~> 4.1.5)

它们都指定了宝石的确切版本吗?它们有什么不同?

请参阅http://docs.rubygems.org/read/chapter/16#page74

从那一页。。。

gem"库",'~>2.2'

请注意,我们只包含版本的2位数字。操作员将去掉版本的最后一位数字,然后增加剩余的最后一个数字数字以获取上限版本号。因此'~>2.2'是相当于:['>=2.2','<3.0']。如果我们说'~>2.2.0',它会已等效于:['>=2.2.0','<2.3.0']。最后一位指定版本控制的粒度级别。(记住,你如果悲观运算符对你来说太有限了)。

最新更新