我是Ruby on Rails的初学者,我正在使用Rails4
Rails中的Gemfile和Gemfile.lock有什么区别?
答案 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.html和http://bundler.io/v1.3/man/bundle-update.1.html。另请参阅有关部署的部分。
更新:
还有相关问题:What is the difference between Gemfile and Gemfile.lock in Ruby on Rails