“=”和“〜>”之间的区别用于在Gemfile和Gemfile.lock中指定版本

时间:2013-06-26 22:29:05

标签: ruby-on-rails rubygems gem

嘿伙伴stackerenos!

很抱歉这样一个基本问题但是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(&gt; = 0.5.1)表示任何大于0.5.1的宝石版本都应该有效。但

之间的区别是什么
 yourgem (= 1.3.4)

 somegem (~> 4.1.5)

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

1 个答案:

答案 0 :(得分:2)

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

从那个页面......

  

宝石'图书馆','〜&gt; 2.2'

     

请注意,我们只包含该版本的2位数字。运营商会   删除版本的最后一位数,然后增加剩余的最终数字   用于获取上限版本号的数字。因此'〜&gt; 2.2'是   相当于:['&gt; = 2.2','&lt; 3.0’ ]。我们说'〜&gt; 2.2.0',它会的   相当于:['&gt; = 2.2.0','&lt; 2.3.0’ ]。最后一位数   指定版本控制的粒度级别。 (记得你   如果悲观的算子,总是可以提供明确的上限   对你来说太有限了。)