当我使用Bundler时,为什么要关心RVM的Gemset功能?

t6d*_*t6d 41 ruby workflow passenger bundler rvm

我只是不明白.我想,Bundler的开发是为了解决宝石之间的版本冲突.因此我require "bundler/setup"知道Bundler将加载我所有宝石及其依赖项的正确版本.现在,RVM非常适合管理多个Rubies,我知道,但为什么我应该关心Gemset功能呢?我在这里想念一下吗?它能使我的开发更容易吗?也许,你们中的一些人可以给我一些关于开发和生产的完美RVM + Bundler工作流程的一些提示.

我也不知道RVM何时开始切换到另一个Ruby.我知道.rvmrc我的项目中可以有一个文件,但是我必须cd到这个目录才能进行切换吗?

此外,我通常使用Passenger进行开发,因为Passenger.prefpaneMac OS中集成非常棒.我还能用RVM做到这一点还是有更好的方法呢?Passenger是否识别.rvmrc文件并切换到正确的Gemset?

Jör*_*tag 24

当我使用Bundler时,为什么要关心RVM的Gemset功能?

你不应该.

好吧,如果你愿意,你可以关心,当然,所以我最好说"你不需要".

我刚刚听了一个与Bundler核心团队成员之一的播客采访,他们基本上说,自从他开始使用Bundler后,他就停止使用Gemsets,因为它们是多余的.

这是一篇博客文章,通过一些例子讨论了同一个问题.

  • 但是,目前RVM和捆绑器并不能很好地协同工作.有关最新详细信息,请参见http://beginrescueend.com/integration/bundler/.目前我正在使用gemsets来避免在共享宝石的不同项目上切换ruby版本时的分段错误. (2认同)

ans*_*hul 6

当我处理遗留代码或分支其他非rails ruby​​项目时,无论出于什么原因都没有出现捆绑路由,gemsets是如此令人敬畏的事情.我也发现宝石在开发宝石时非常宝贵.很高兴有多个测试环境可以切换并测试新建的gem.

乘客不会.rvmrc根据我的知识阅读.据我所知,你不能在不同的红宝石下在乘客中运行不同的项目.我的默认设置的轨道刚刚bundlerrake全球宝石.我让Bundler从那里接管并像你描述的那样明智地管理其他宝石项目.效果很好.