Они служат разным целям.RVM создает «песочницу» для управления вашими установками Ruby.Как часть этого, он также позволяет вам определять наборы гемс.
Bundler не управляет вашими Ruby, он работает с выбранным в данный момент Ruby.
Итак, я думаю, вам следует рассмотреть RVM как менеджер конфигурации для вашей среды разработки, а Bundler - менеджер гемов для приложения.
РЕДАКТИРОВАТЬ: Дополнительные мысли -
Используем ли мы RVM или нет, обычно нам приходится вручную загружать все драгоценные камни, которые мы собираемся использовать для приложения, используя gem install blah
, для каждого драгоценного камня, который мы хотим использовать.
Я в конечном итоге вручную управляю своими драгоценными камнями в нескольких рубинах.После того, как они установлены, я могу создавать наборы гемов с помощью RVM, но RVM не будет автоматически извлекать конкретную версию гема, если он не установлен, и не получит ее снова, если она была удалена.Поскольку RVM больше заботится о вашей среде Ruby, он в основном оставляет версионность гемов для gem
и для нас.
Bundler, с другой стороны, заботится об этих недостающих частях в RVM.Когда вы создаете Gemfile для компоновщика, он извлекает необходимые гемы и конкретные версии, если они указаны.Таким образом, задача установки приложения Ruby на другой компьютер становится намного проще.Переместите файлы на другую машину, затем запустите bundle install
, и все остальное будет сделано.
Он отлично работает с Rails и является разумным решением для моих производственных файлов.Это будет намного проще, чем то, как я должен обрабатывать дистрибутивы Perl, чтобы запускать приложения Perl на тех же хостах.