Gemfile.lock在Rails中使用?

Nit*_*eti 24 gem ruby-on-rails-3 gemfile

Rails中"Gemfile.lock"的目的是什么?我一直在寻找,但找不到满意的答案.

fuz*_*lej 26

您应该阅读bundlergem中的所有文档:http://gembundler.com/

GEMFILE.LOCK

当您运行bundle install时,Bundler会将您使用的所有gem的全名和版本(包括Gemfile(5)中指定的gem的依赖项)保存到名为Gemfile.lock的文件中.

Bundler在所有后续捆绑安装调用中使用此文件,这保证您始终使用相同的确切代码,即使应用程序跨机器移动也是如此.

由于依赖项解析的工作方式,即使看似很小的更改(例如,更新Gemfile(5)中gem的依赖项的点发布)也可能导致需要完全不同的gem来满足所有依赖项.

因此,您应该检查Gemfile.lock到版本控制.如果不这样做,那么检出您的存储库(包括您的生产服务器)的每台计算机都将再次解析所有依赖项,如果Gemfile(5)中的任何gem或任何gemfile,将导致使用不同版本的第三方代码他们的依赖关系已更新.


Jat*_*tra 6

Gemfile.lock 确保您的应用程序上的其他开发人员以及您的部署环境使用与刚刚安装的完全相同的第三方代码.