我是 Ruby on Rails 的初学者,我正在使用 Rails4
Rails 中的 Gemfile 和 Gemfile.lock 有什么区别?
Gemfile 包含运行后将包含在项目中的 gem bundle install
。您可以对它们进行分组,并指定它们的来源(从哪里获取它们)和版本/分支。
Gemfile.lock 由生成bundler
并包含所有实际安装的 gem 及其版本的列表,包括它们的所有依赖项。
Gemfile
存储您要为项目安装的软件包列表,以及在哪里可以找到它们以及要使用哪个版本的可选信息。如果您没有Gemfile.lock
,bundler 将使用来自的信息Gemfile
并查找可以安装的包和版本以满足所有依赖项。
Gemfile.lock
然后生成以存储包及其使用的版本bundle install
(在解决依赖关系之后)。如果有人bundle install
再次调用,bundler 检查是否Gemfile.lock
是最新的,如果是,bundler 使用版本Gemfile.lock
来安装 gems。
Gemfile
用于存储您要使用的所需包,Gemfile.lock
存储与 last 一起使用的所有包名称和版本bundle install
,这应该适用于部署或其他开发人员的机器(因为它们与您在开发中使用的版本相同)。
请参考文档: http: //bundler.io/v1.3/man/bundle-install.1.html和http://bundler.io/v1.3/man/bundle-update.1.html。另请查看有关部署的部分。
更新: