Ruby 我为什么要关心RVM';使用Bundler时的Gemset功能?

Ruby 我为什么要关心RVM';使用Bundler时的Gemset功能?,ruby,workflow,passenger,bundler,rvm,Ruby,Workflow,Passenger,Bundler,Rvm,我就是不明白。我认为,Bundler是为了解决gems之间的版本冲突而开发的。因此,我只需要要求使用“bundler/setup”,一切都很好,因为我知道bundler将加载所有gem及其依赖项的正确版本。现在,我知道RVM非常适合管理多个红宝石,但我为什么要关心Gemset功能呢?我错过什么了吗?它能让我的发展更容易吗?也许,你们中的一些人可以给我一些关于完美的RVM+捆绑机工作流程的提示,包括开发和生产 我也不知道RVM什么时候开始切换到另一个Ruby。我知道我的项目中可以有一个.rvmrc

我就是不明白。我认为,Bundler是为了解决gems之间的版本冲突而开发的。因此,我只需要
要求使用“bundler/setup”
,一切都很好,因为我知道bundler将加载所有gem及其依赖项的正确版本。现在,我知道RVM非常适合管理多个红宝石,但我为什么要关心Gemset功能呢?我错过什么了吗?它能让我的发展更容易吗?也许,你们中的一些人可以给我一些关于完美的RVM+捆绑机工作流程的提示,包括开发和生产

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


此外,我通常使用Passenger进行开发,因为得益于
Passenger.prefpane
,Mac OS中的集成非常好。我仍然可以用RVM做这件事,还是有更好的方法?乘客是否识别
.rvmrc
文件并切换到正确的Gemset?

当我处理遗留代码或分叉其他非rails ruby项目时,无论出于何种原因,Gemset都是非常棒的东西。在开发gems时,我也发现gems非常宝贵。很高兴有多个测试环境来切换和测试新构建的gem

据我所知,乘客没有阅读
.rvmrc
。据我所知,你不能在不同的环境下运行不同的项目。我的默认rails设置在全局gemset中只有
bundler
rake
。我让bundler从那个里接手,并像你们描述的那个样明智地管理其余的gems项目。效果很好

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

你不应该

好吧,如果你想,你当然可以关心,所以我最好说“你不需要。”

我刚才听一位女士说,自从他开始使用Bundler后,他就停止使用Gemset,因为它们是多余的


如果您预计需要更改捆绑机版本,那么一定要使用gemest。您可以使用gemeset来管理与Rails应用程序(wirble等)无关的gems。这是否意味着您的每个项目都有一个独立的gemeset?我的意思是你正在谈论你的“默认rails设置”。在某种程度上,这种设置可能会演变为特定于项目的状态。那时候你有定制的宝石吗?如何在开发机器上运行应用程序?是的,我的所有非rails项目都有独立的gemset,rails项目有一个gemset(只包含bundler)。对于rails项目的所有gem需求,我都让bundler处理—例如
bundle exec rails server
bundle exec rake
。因此,我的Gemfiles会随着rails项目的发展而发展,但是
rails
gemset不会。是的,rvm将cd重新定义为一个shell函数,在更改目录时检查.rvmrc文件。但是,目前rvm和bundler的工作不太好。有关最新详细信息,请参阅。目前,我正在使用gems来避免在共享gems的不同项目上切换ruby版本时出现分段错误。