RVM - это менеджер версий Ruby. Это позволяет легко поддерживать отдельные установки Ruby параллельно, без конфликтов. Одним из необходимых условий для этого является сохранение гемов для каждой версии Ruby отдельно, поскольку установщики могут «переключаться» в зависимости от того, какую версию Ruby вы используете.
Gem - это команда, которая позволяет вам устанавливать гемы. Это ядро всей инфраструктуры - он не призывает «упаковщика» более низкого уровня выполнять свою работу.
Bundler работает "на вершине" Gem. Это облегчает управление версиями gem, во многом как в RVM для Ruby (версии Ruby). Он автоматически установит гемы, которые не установлены, поэтому вам не нужно явно запускать gem install gem-name
перед запуском bundle
(или bundle install
).
Gem, Bundler и RVM пересекаются, если вы начнете использовать наборы гемов RVM. Они позволяют вам дополнительно изолировать и контролировать свою среду, создавая отдельную «среду драгоценного камня». Основное использование для этого заключается в том, что вы можете хранить гемы для разных проектов отдельно, что помогает в управлении версиями. Если вы используете Bundler, это не так важно или полезно, как в дни до Bundler, когда Rails / Sinatra / etc. потребует самой последней версии драгоценного камня.
Это отвечает на ваш вопрос?