Rails 中“Gemfile.lock”的目的是什么?我一直在寻找,但找不到满意的答案。
问问题
8256 次
2 回答
26
bundler
您应该阅读gem中的所有文档:http: //gembundler.com/
GEMFILE.LOCK
当您运行 bundle install 时,Bundler 会将您使用的所有 gem 的全名和版本(包括 Gemfile(5) 中指定的 gem 的依赖项)保存到一个名为 Gemfile.lock 的文件中。
Bundler 在对 bundle install 的所有后续调用中都使用此文件,这可以保证您始终使用完全相同的代码,即使您的应用程序跨机器移动也是如此。
由于依赖解析的工作方式,即使是看似很小的更改(例如,更新 Gemfile(5) 中 gem 的依赖的点发布)都可能导致需要完全不同的 gem 来满足所有依赖。
因此,您应该检查您的 Gemfile.lock 到版本控制。如果您不这样做,每台检出您的存储库(包括您的生产服务器)的机器将再次解析所有依赖项,这将导致使用不同版本的第三方代码,如果 Gemfile(5) 中的任何 gem 或任何它们的依赖项已更新。
于 2012-02-09T09:39:53.780 回答
6
Gemfile.lock
确保您的应用程序上的其他开发人员以及您的部署环境使用与您刚刚安装的完全相同的第三方代码。
于 2012-02-09T09:34:14.800 回答