Использование RVM, Bundler и других команд Ruby gem в вашем терминале

Примечание. Все упомянутые команды используют оболочку Bash в терминале Mac OS X.

RVM (Менеджер версий Ruby)

Что такое РВМ?

RVM — это платформа, предназначенная для помощи в управлении локальными версиями Ruby. Он разделяет версии Ruby и каждый из связанных с ними гемов, которые были установлены для этой версии.

Давайте сразу перейдем к некоторым вариантам использования RVM после его установки.

Команды RVM

Ну, мы не можем управлять рубином, не имея его в первую очередь. Я собираюсь установить несколько версий Ruby.

Установите последнюю версию Ruby

rvm install ruby

Установите определенную версию Ruby (замените X.X.X номером версии)

rvm install ruby-X.X.X

Для демонстрации я установил последнюю версию Ruby (ruby-2.6.0), а также две другие версии (ruby-2.3.0 и ruby-2.5.3).

Вернуть список установленных на данный момент версий

rvm list

Вот как это выглядит, когда я запускаю его на своей машине.

В настоящее время я использую последнюю версию. Иди ко мне. Однако что, если меня только что назначили на проект, который требует запуска любой версии до 2.6.0. В моем распоряжении есть пара команд.

Изменить текущую версию Ruby (замените X.X.X номером версии)

rvm use X.X.X

Это временно изменит версию Ruby в моей оболочке. Ruby сбросит настройки по умолчанию при открытии новой оболочки терминала. Это лучший выбор, если мне нужно быстро поработать над проектом в течение короткого периода времени, не меняя версию Ruby по умолчанию.

Изменить версию Ruby по умолчанию (замените X.X.X номером версии)

rvm --default use X.X.X

Теперь это будет версия Ruby по умолчанию, когда я открываю новую оболочку терминала. Предположим, что это долгосрочный проект, я возьму этот.

Удалить версию Ruby (замените X.X.X номером версии)

rvm remove X.X.X

Рубиновые драгоценные камни

С каждой версией Ruby поставляются связанные с ней жемчужины. Имейте в виду, что когда вы устанавливаете, изменяете или удаляете версию Ruby, все драгоценные камни, которые были установлены/связаны с этой версией, остаются с ней. Локальное отслеживание отдельных драгоценных камней менее критично при работе над проектом благодаря Ruby Gem под названием Bundler.

Рубиновые камни

Что такое рубиновые камни?

Gem — это программный пакет, который можно добавить для расширения функциональных возможностей программ на ruby. Мы уже узнали об одном геме (бандлере). Я не буду слишком углубляться во все типы рубиновых драгоценных камней, но они являются прекрасным дополнением к тому, чтобы сделать любой проект на Ruby более функциональным.

Основные команды Ruby Gem

Установите гем Ruby

gem install gem_name

Список установленных гемов

gem list

Довольно простые вещи. Теперь давайте посмотрим на список драгоценных камней, установленных локально.

Усечено только до первых 7 драгоценных камней, и мы видим… это много! Давайте выполним удаление.

Примечание: каждая из этих команд предложит вам, если вы пытаетесь удалить гем, являющийся частью зависимости, как это полезно!

Удалить все старые версии всех гемов

gem cleanup

Удалить все старые версии определенного драгоценного камня

gem cleanup gem_name

Удалить все версии драгоценного камня

gem uninstall gem_name

Удалить определенную версию драгоценного камня (замените X.X.X номером версии)

gem uninstall gem_name -v, X.X.X

Удалить все версии ниже указанной версии (замените X.X.X на номер версии)

gem uninstall gem_name -v, '<X.X.X'

Намного лучше! Наши камни чисты как мыло.

Следует отметить, что более старые версии драгоценных камней, безусловно, могут быть полезны из-за совместимости. Однако при использовании Bundler это не будет проблемой, поскольку он просто переустановит все отсутствующие драгоценные камни по мере необходимости. Давайте узнаем об этом немного больше.

Бандлер

Что такое бандлер?

Bundler был выпущен в 2009 году (извините, ветераны программирования) как система управления драгоценными камнями Ruby для проектов Ruby. Он имеет несколько преимуществ:

  • Это позволяет пользователю указать драгоценные камни Ruby (в gemfile), которые должны быть установлены локально перед работой над проектом.
  • Это позволяет пользователю указывать определенные версии драгоценных камней Ruby.
  • Он автоматически устанавливает указанные драгоценные камни Ruby и любые зависимости драгоценных камней.
  • Он создает блокировку gemfile, которая отмечает установленные драгоценные камни.

Бандлер Магия

Проверка и установка отсутствующих гемов, необходимых для проекта

bundle install

Одна команда, чтобы править всеми!

Итак, что же бандлер делает за кулисами с помощью этой единственной команды?

  1. Читает блокировку gemfile (если она существует)
  2. Читает гемфайл
  3. Запрашивает RubyGems.org список всех версий каждого указанного гема.
  4. Находит версии гема, разрешенные гемфайлом, которые работают вместе, включая все необходимые гемы-зависимости.
  5. Записывает эти версии в блокировку gemfile.
  6. Установите все драгоценные камни в замок gemfile

Мощная штука! Bundler необходим в любом проекте Ruby, чтобы держать драгоценные камни красивыми и организованными.

Поздравляем! Считайте, что ваш рубин связан!