Согласно предыдущему ответу, это довольно много, поэтому считайте это кратким введением.
драгоценные камни - это способ упаковки библиотек Ruby. Для Ruby они такие же, как jar-файлы для Java. Внутри файла гема вы найдете код Ruby (файлы .rb), а также тесты и специальный файл, содержащий информацию о самом геме, такую как его имя, зависимости и версия ( gemspec ). Любой проект Ruby может определять необходимые ему драгоценные камни через Gemfile, в котором просто нужно объявить зависимости. Rubygems - это имя диспетчера пакетов - инструмента, используемого для установки пакетов (в то время как драгоценные камни - это сами пакеты). Rubygems теперь является частью Ruby.
Bundler - это то, что делает управление драгоценными камнями сносным. На основе вашего Gemfile простой вызов сборщика с помощью пакета установки загрузит и установит все необходимые драгоценные камни. Используя стандартную команду gem, вам придется установить каждый из них вручную, используяgem install <gem_name>
. Bundler не является частью Ruby (он сам упакован как гем ), но он является «стандартом де-факто» для большинства приложений (вы не найдете многих людей, которые его не используют, и на самом деле нет веских причин не использовать его).
RVM - это инструмент, позволяющий установить несколько версий Ruby на машину, переключаясь между ними при необходимости. Его можно использовать для установки как Ruby 1.8 и 1.9, так и даже «MRI» (Matz Ruby, реализация по умолчанию) и альтернатив (таких как JRuby или Rubinius). Обратите внимание, что RVM не единственный в этом поле, см., Например, rbenv .
Gemset в РВМ представляет собой набор из драгоценных камней , специфичных для данного контекста, как правило , проекта. Это полезно, если вы, например, разрабатываете разные приложения, каждое со своими наборами драгоценных камней, и хотите хранить их отдельно.
system Ruby - это при использовании RVM версия Ruby, установленная на машине (т. е. не через RVM).
Если вы только начинаете, самоцветы и бандлер вам интересны. Вы можете пока оставить в стороне RVM и гемсеты.