当我的同事运行“捆绑安装”时,他会安装最新的宝石还是Gemfile.lock中的宝石?

时间:2011-03-25 11:25:40

标签: ruby-on-rails ruby-on-rails-3 bundler

那是因为在gembundler.com上,它说:

  

确保将Gemfile.lock添加到您的   库。这将确保这一点   您的应用上的其他开发人员也是如此   作为您的部署环境,请使用   完全相同的第三方代码   你刚装好了。

所以,假设我只是说

gem 'rails'

所以,当我的同事在3个月之后bundle install执行Rails 3.0.6或更高版本时,他会安装3.0.6,还是Gemfile.lock中的那个? (截至目前为3.0.5)

如果一切都必须完全符合Gemfile.lock,那么更新Gemfile.lock的过程是什么?确保所有测试都通过,然后以某种方式告诉bunlder将所有gem升级到最新版本,再次运行测试并确保它们通过,然后提交最新的Gemfile.lock?

2 个答案:

答案 0 :(得分:7)

bundle install将安装Gemfile.lock中的gems版本。要更新到最新的允许版本,您应该运行bundle update(它还会更新Gemfile.lock)。如果更新后出现问题(例如测试失败),您可以回退到存储库中以前版本的Gemfile.lock并再次运行bundle install以获取以前工作的gems版本。此外,个人宝石可能会被bundle update <gem_name>更新,例如bundle update rails(这也解决了依赖关系并更新了Gemfile.lock)。

答案 1 :(得分:1)

gembundler.com网站有很多答案。您应该查看rationale页面。