在Capistrano部署中Rails 3“捆绑安装” - 但如何清理?

时间:2011-11-15 18:55:37

标签: ruby-on-rails gem capistrano bundler

经过长时间阅读Bunder文档后,我非常理解为什么与手动gem安装相比这是一件好事。

但这最近才出现给我(和其他人),现在我们有一个混合环境。我们的开发机器大多都很好。但是当我们部署到生产时,Bundler告诉capistrano将宝石放在shared/bundle/gems中,这是有道理的。但我们仍然在正常的.rvm位置手动安装了宝石。

所以现在我们知道不要在生产中使用“gem install”,但是当我们直接运行Rake任务时,我们正在处理版本不匹配。我认为,我们可以使用“捆绑exec rake foo:bar”强制执行正确的行为。但是现在我们有一堆过时的宝石:

  • Bundler安装的过时宝石,
  • 我们使用gem install
  • 手动安装的Gems

我想让事情保持原始状态。我有什么理由不使用gem cleanup吗?

希望这不是太复杂: - )

提前致谢。

1 个答案:

答案 0 :(得分:1)

gem cleanup将保留所有宝石的最新版本,并删除旧版本。我想你想要的是:

  1. (可选)为项目创建RVM gemset。 (我喜欢这样做;有些人完全依赖Bundler,它也有效。)
  2. 确保在Gemfile中指定了所有顶级依赖项。
  3. 除Bundler外,删除所有宝石(rvm gemset empty可能会有所帮助。
  4. bundle install
  5. 从现在开始使用bundle exec运行所有内容。