我不确定这两个工具之间的区别.似乎有很大的重叠,但我一直在使用RVM并面临一些错误兼容性问题.
Bundler做什么,RVM没有?
解决方法
它们用于不同的目的. RVM创建一个沙箱来管理您的
Ruby安装.作为其中的一部分,它还允许您定义gemsets.
Bundler不管理你的Rubies,它适用于当前选择的Ruby.
因此,我认为您应该将RVM视为开发环境的配置管理器,并将Bundler视为应用程序的gem管理器.
编辑:其他想法 –
无论我们是否使用RVM,通常我们必须使用gem install blah加载我们将要用于app的所有gem,用于我们想要使用的每个gem.
我最终手动管理多个ruby的宝石.一旦安装完毕,我就可以使用RVM创建gemsets,但如果没有安装,RVM将不会自动检索某个特定版本的gem,或者如果它被删除则再次获取它.因为RVM更关心你的Ruby环境,所以它主要是将gem的版本化留给gem和我们.
另一方面,Bundler确实关心RVM中缺少的部分.为bundler创建Gemfile时,如果指定,它将检索必要的gem和特定版本.因此,在不同的机器上安装Ruby应用程序的任务变得更加简单.将文件推送到另一台机器,然后运行bundle install,它将完成剩下的工作.
它与Rails很好地配合使用,对我的生产文件来说是一个明智的解决方案.它将比我必须处理Perl发行版要简单得多,以便在相同的主机上运行Perl应用程序.