1

嘿,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 (>= 0.5.1) 意味着任何大于 0.5.1 的 gem 版本都可以工作。但是两者有什么区别

 yourgem (= 1.3.4)

 somegem (~> 4.1.5)

他们是否都指定了 gem 的确切版本?它们有何不同?

4

1 回答 1

4

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']。最后一位数字指定版本控制的粒度级别。(请记住,如果悲观运算符对您来说太有限,您总是可以提供明确的上限)。

于 2013-06-26T22:32:13.583 回答