Согласно предыдущему ответу, это довольно много, поэтому считайте это кратким введением.
драгоценные камни - это способ упаковки библиотек 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 и гемсеты.
Вы запрашиваете больше информации в одном вопросе, чем это предусмотрено в Stack Overflow. Чтобы охватить все это, понадобится книга.
В Ubuntu легко устанавливать и удалять гемы в «системную» версию Ruby, так что привыкайте к установке и удалению обычных гемов через
sudo
. (В Mac OS я бы дал другой совет, потому что Apple объединяет Ruby для собственного использования, и возиться с ним - не лучшая идея.) Затем, когда вы понимаете, как работает вся идея драгоценного камня, и знаете, что хотите несколько Версии Ruby в вашей системе, попробуйте « rbenv » или « RVM » и установите одну или две версии в свою песочницу.Linux упрощает добавление / удаление Ruby через дистрибутив, но мы ограничены версиями, которые поставили разработчики дистрибутива, поэтому я обычно устанавливаю из исходного кода. Но это больно при управлении несколькими версиями Ruby для систем разработки, тестирования и производства, поэтому были изобретены rbenv и RVM - они обрабатывают грязные детали, позволяя нам сосредоточиться на программировании.
Я использовал как rbenv, так и RVM , и использую rbenv в течение последних шести месяцев или около того, с хорошими результатами. Он менее сложен, чем RVM, который мне нравится. В любом случае они позволяют легко устанавливать разные версии с отдельными наборами драгоценных камней. При желании вы можете открывать разные версии Ruby в разных окнах терминала, что упрощает проверку совместимости.
Правило первое при отладке - вносить изменения по одному, что верно для обучения программированию или изучения нового языка. Не отвлекайтесь, просто будьте проще.
источник