如何在较低版本上更新宝石?例如:铁轨2.3.14。如果我没有在github上关注项目,我不会知道它存在。通常我会通过运行'gem update'来了解大多数gem更新,这显然是关于3.X版本。有没有办法让'宝石更新'包括宝石的低级主要版本?
感谢。
答案 0 :(得分:1)
您可以使用pessimistic version constraint。
gem 'library', '>= 2.2.0'
这称为 OptimisticVersionConstraint 。他们乐观地认为3.0版中引入的不兼容更改仍然适用于他们的软件。他们无法保证这一点(很可能在编写宝石线时没有编写verion 3.0)。但他们愿意抓住机会。
你图书馆的其他一些客户并不那么乐观。他们完全期望新接口会破坏他们的软件,因此他们希望防止意外使用新接口。他们使用 PessimisticVersionConstraint 明确排除您的3.0版。
gem 'library', '>= 2.2.0', '< 3.0'
这样做很麻烦,因此RubyGems提供了一个悲观的运算符~>
(读取:大约大于)。使用悲观运算符,我们得到:
gem 'library', '~> 2.2'
请注意,我们只包含该版本的2位数字。操作员将删除版本的最后一位数字,然后递增剩余的最终数字以获得上限版本号。因此'〜&gt; 2.2'相当于:['&gt; = 2.2','&lt; 3.0' ]。我们说'〜&gt; 2.2.0',它本来相当于:['&gt; = 2.2.0','&lt; 2.3.0' ]。最后一位指定版本控制的粒度级别。 (请记住,如果悲观操作符对您来说太有限,您可以提供明确的上限。)