Rails:在我的应用程序中指定gems的版本是一种好习惯吗?

时间:2016-02-18 19:03:22

标签: ruby-on-rails rubygems

我是铁道新手并且有一个相当普遍的问题:

在我的应用中指定宝石的版本是一种好习惯吗?或者,我应该省略版本号并让它定期获取最新更新

1 个答案:

答案 0 :(得分:1)

Gemfile.lock文件的目的是跟踪gem版本。使用Gemfile.lock的运行bundle install仅使用其中列出的依赖项进行安装;它不会重新解析Gemfile。要更新依赖项/更新gem版本,您必须显式执行更新,这将更新您的Gemfile.lock文件。

如果没有Gemfile.lock,将代码部署到生产将是一个主要问题,因为正如您所提到的,依赖关系和gem版本可能会发生变化。

简而言之,正如rubygems.org建议的那样,使用悲观版本约束运算符(〜>)通常应该是安全的。确保在进行捆绑更新后重新运行测试,以确保没有任何中断。

Yehuda Katz有一篇nice文章,其中有关于Gemfile.lock的更多信息。