Приложения для Ruby часто требуют различные версии Ruby, а в систему из пакетов обычно ставится только одна версия и не обязательно последняя.
Особенные сложности возникают когда разным приложениям на одном сервере требуются разные версии Ruby.
Для устранения данного недостатка есть Ruby Version Manager (RVM), который занимается управлением версиями Ruby, физически разделяет версии, а так же позволяет создавать отдельные gemsets для каждой версии Ruby (в рамках каждой версии Ruby можно будет иметь несколько наборов gems).
Установить RVM можно для конкретного пользователя или для всех пользователей.
Если установка производится для всех пользователей, то все выполняем из-под root или с использованием sudo.
Приступим к установке RVM (описывается процесс установки для всех пользователей).
Установим все зависимости:
apt-get install curl git sudo
Установим GPG ключ для пользователя root:
sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
Скачаем и запустим скрипт установки RVM (установку RVM будем производить для всех пользователей):
curl -sSL https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer | sudo bash -s stable
Теперь добавляем все пользователей, которым нужен будет RVM в группу rvm:
usermod -a -G rvm имя_пользователя
Запускаем RVM (или просто перезаходим в консоль, чтобы настройки, сделанные при установке, применились):
source /etc/profile.d/rvm.sh
Менеджер версий Ruby установлен.
Теперь можно ставить нужную версию Ruby.
Чтобы посмотреть все доступные версии Ruby используется команда:
rvm list known
Чтобы установить нужную версию Ruby (можно установить несколько версий) используется команда:
rvm install версия_ruby
пример (устанавливаем версию 2.3.0):
Кстати на момент написания статьи были проблемы с установкой Ruby Версии 2.1.5. Как установить данную версию рассказывается в статье: Установка Ruby 2.1.5 через RVM.
rvm install 2.3.0
Чтобы посмотреть все установленные версии Ruby используется команда:
rvm list
Для выбора версии Ruby, которая будет использоваться по умолчанию, используется команда:
rvm use ruby версия_ruby --default
пример (используем версию 2.3.0):
rvm use ruby 2.3.0 --default
создание набора gemsets (все gemsets создаются для конкретной версии Ruby):
rvm use версия_ruby@имя_набора --create
пример (создаем набор test для версии 2.3.0):
rvm use 2.3.0@test --create
Просмотр имеющихся gemsets:
rvm gemset list
использовать gemset в настоящий момент:
rvm use версия_ruby@имя_набора
пример (версия – 2.3.0, gemset – test ):
rvm use 2.3.0@test
использовать gemset test для Ruby 2.3.0 по умолчанию:
rvm use 2.3.0@test --default
очистить gemset:
rvm gemset empty имя_gemset
удалить gemset:
rvm gemset delete имя_gemset
Так же можно для проекта создать отдельное окружение и его автоматически инициализировать.
Создание отдельного окружения для проекта производится с помощью двух файлов: .ruby-gemset и .ruby-version
Для задания нужного окружения записываем в файл .ruby-gemset имя нужного gemset’а:
test
И в файл .ruby-version записываем нужную версию Ruby:
2.3.0
Теперь при запуске проекта будут сразу использоваться нужная версия Ruby и gemset.
Заказать создание и поддержку безопасной IT-инфраструктуры любой сложностиБыть уверенным в своей IT-инфраструктуре – это быть уверенным в завтрашнем дне. Для того, чтобы сделать заказ:
|