Ruby on Rails中Gemfile和Gemfile.lock之间的区别

时间:2013-09-03 12:33:36

标签: ruby-on-rails gemfile

我是Ruby on Rails的初学者,我正在使用Rails4

Rails中的Gemfile和Gemfile.lock有什么区别?

2 个答案:

答案 0 :(得分:4)

Gemfile包含运行bundle install后将包含在项目中的gem。您可以对它们进行分组,以及指定它们的来源(它们将从哪里获取)和版本/分支。

Gemfile.lock由bundler生成,包含实际安装的所有gem及其版本的列表,包括所有依赖项。

答案 1 :(得分:2)

Gemfile存储要为项目安装的软件包列表,其中包含可选信息,可在哪里找到它们以及要使用的版本。如果您没有Gemfile.lock,则bundler将使用来自Gemfile的信息,并查找可以安装的软件包和版本以满足所有依赖项。

然后生成

Gemfile.lock来存储bundle install使用的包及其版本(在解析依赖关系之后)。如果有人再次调用bundle install,则捆绑程序会检查Gemfile.lock是否为最新版本,如果是,则捆绑程序使用Gemfile.lock中的版本来安装宝石。

Gemfile用于存储您要使用的必需软件包,Gemfile.lock存储与上一个bundle install一起使用的所有软件包名称和版本,这些名称和版本应该适用于部署或其他开发人员机器(因为它们与您在开发中使用的版本相同)。

请参阅文档:http://bundler.io/v1.3/man/bundle-install.1.htmlhttp://bundler.io/v1.3/man/bundle-update.1.html。另请参阅有关部署的部分。

更新

还有相关问题:What is the difference between Gemfile and Gemfile.lock in Ruby on Rails