Вступление
Ruby – широко распространенный язык программирования, обладающий Ruby on Rails, или RoR, популярным фреймворком, который позволяет разрабатывать приложения и функционирует с минимальными трудностями.
Зачастую разработка приложений требует копирования конфигураций.
Для разных проектов могут понадобиться разные версии Ruby. Учитывая стандартную установку, это негативно сказывается на гибкости работы
К счастью, Ruby Version Manager, более известный как RVM, позволяет без труда установить составной Ruby и свободно переключать содержащиеся в нем версии.
В этой статье предполагается, что Вы уже установили RVM. Рассмотрим основные приемы работы с этой утилитой и правила управления конфигурациями Ruby.
Основной синтаксис RVM
Если вы уже установили RVM, вам должна быть доступна команда rvm. Так мы вызываем RVM.
Основной синтаксис команды выглядит так:
rvm command_options command ruby_to_act_on
Также можно использовать флажки RVM, которые могут вносить изменения в работу RVM и приведены как дополнительная команда.
Вы можете получить список доступных команд, набрав
rvm help.
Чтоб получить помощь по конкретной команде, нужно сослаться на нее после “help” для получения более подробной инструкции, например:
rvm help command
Как активировать автодополнение RVM
Для активизации автодополнения RVM , нужно внести в файл .bashrc следующую строку:
[[ -r $rvm_path/scripts/completion ]] && . $rvm_path/scripts/completion
Чтоб дополнить команду RVM, можно после ввода части команды дважды нажать клавишу TAB. Например, можно набрать:
rvm inst
и в этом месте дважды нажать ТАВ, тогда команда завершится до
rvm install.
Затем можно закончить вводить параметры.
Запомните: это также работает с аргументами. При переключении на другую версию Ruby, можно ввести
rvm use
Затем введите пробел и дважды ТАВ, и вам будет представлен список доступных версий Ruby.
Как устанавливать и удалять Ruby
Список доступных для установки версий Ruby можно получить с помощью команды
rvm list known
После того, как вы выбрали версию Ruby, которую хотите установить, можно выполнить следующую команду:
rvm install ruby_version
Если вы захотите удалить версию Ruby, это можно сделать просто введя
rvm uninstall ruby_version
Как переключить версии Rubу между собой
Если вы установили несколько версий Ruby, вы можете просмотреть их список с помощью команды:
rvm list
rvm rubies
=* ruby-2.0.0-p247 [ x86_64 ]
# => - current
# =* - current && default
# * - default
Как видите, RVM предоставляет удобное руководство, чтоб сообщить, какие из версий Ruby текущие, а какие – по умолчанию. В данном случае, это одно и то же.
Переключитесь на другую версию Ruby, введя
rvm use ruby_version
Используя флажок –-default, укажите версию Ruby по умолчанию:
rvm --default use ruby_version
Чтобы переключиться на версию Ruby по умолчанию, нужно ввести:
rvm default
Чтоб использовать версию Ruby, установленную в системе (не с помощью RVM), нужно указать:
rvm use system
Как использовать Gemsets в RVM
Один из популярных способов распространить код в Ruby – использовать формат под названием gems. Gems можно установить для того, чтоб расширить возможности основного распределения Ruby, кроме того, часто встречаются gems, которые нужно установить для исправной работы определенных программ.
В соответствии с целевым назначением RVM поддерживать содержащиеся в Ruby конфигурации, также возможно установить gems, относящиеся исключительно к установке Ruby. RVM зовет этот набор функциональных возможностей gemset ’ы.
Это значит, что вы можете иметь две разные версии одного gem’a, или же сделать gems невидимыми для других gem ‘ов системы.
Чтоб просмотреть доступные gemset’ы для основной версии Ruby, можно набрать:
rvm gemset list
Если у вас установлено несколько версий Ruby, все gemset’ы можно просмотреть, введя:
rvm gemset list_all
По умолчанию, вы должны иметь два сконфигурированных gemset’а:
- default: gemset, который применяется, если другой gemset не указан.
- global: этот gemset наследуется всеми остальными используемыми gemset’ами. Этот набор, как правило, не нужно выбирать, так как он добавляется автоматически. Здесь нужно установить совместно используемые gems.
Вы можете без труда создать другой gemset. Мы создадим gemset под названием “test_project”, чтоб продемонстрировать, как это работает:
rvm gemset create test_project
Если вы в качестве проверки хотите скопировать текущий gemset к новому, используйте данную команду:
rvm gemset copy default test_project
Можно изменить gemset, который мы хотим использовать:
rvm gemset use test_project
Можно также одновременно сменить версию Ruby и gemset. Для этого нужно указать версию Ruby, затем набрать символ «@» и задать gemset:
rvm use 2.0.0@test_project
Теперь можно установить Tic-Tac-Toe gem, используя команду:
gem install tictactoe -v 0.0.4
Сейчас можно вернуться к gemset’у по умолчанию и установить более простую версию того же gem’а:
rvm gemset use default
gem install tictactoe -v 0.0.3
Теперь у нас установлены две разные версии Tic-Tac-Toe gem’а, можно самостоятельно протестировать их, переключая используемый gemset.
Если вы забыли, с каким именно gemset’ом вы сейчас работаете, эта команда назовет вам активный gemset:
rvm gemset name
Когда вы закончили использовать gemset (возможно, потому что вы закончили проверять), вы можете избавиться от него, используя следующую команду:
rvm gemset delete test_project
RVM – как задать конфигурацию по умолчанию
RVM можно сконфигурировать со значениями по умолчанию на разных уровнях. RVM хранит эти значения в данном файле:
nano ~/.rvm/config/db
Можно посмотреть, что RVM будет использовать, если не давать ему конкретных указаний поступить иначе.
Запомните: не нужно редактировать этот файл. Он переписывается вместе с установкой улучшенной версии RVM.
При необходимости вы можете заменить эти параметры, используя отдельный файл:
nano ~/.rvm/user/db
Для легкости использования можно скопировать параметры из файла config/db и поместить их в файл user/db, чтоб без труда изменить их.
Как автоматизировать конфигурации RVM
Для различных проектов можно создавать индивидуальные конфигурации, которые устанавливают, какую версию Ruby и gemset нужно использовать, путем создания файла .rvmrc внутри каталога проекта.
Это устраняет необходимость вручную отслеживать активную версию Ruby.
Чтоб создать индивидуальные конфигурации для проекта, просто создайте файл .rvmrc в главном каталоге файлов проекта:
nano .rvmrc
В созданном файле нужно набрать «rvm», затем указать версию Ruby, набрать символ «@» и задать gemset:
rvm ruby_version@gemset
Это все, что нужно. Вам может понадобиться принять конфигурации, когда вы впервые зайдете в каталог.
Убедитесь в том, что вы создали gemset и установили версию Ruby, которые вы указываете, иначе каждый раз, когда вы будете заходить в каталог, будет появляться просьба установить и создать необходимые элементы.
Можно также добавить любого рода индивидуальные конфигурации RVM в один и тот же файл.
Как обновить RVM
Когда выходит новая версия RVM, можно без труда обновить старую версию с помощью утилиты.
Просто используйте следующую команду:
rvm get stable
Тогда RVM выберет и установит новейшую версию и перезагрузит конфигурации. В этом случае вы потеряете свои конфигурации, если вы поместили их в config/db вместо user/db.
Чтоб улучшить RVM до последней доступной версии (не обязательно стабильной), достаточно набрать:
rvm get head
Заключение
Как вы можете видеть, RVM – универсальный инструмент, который можно использовать для управления проектами и целостности конфигураций Ruby. Можно использовать RVM, чтоб сконфигурировать условия развития, установки сервера, и даже для размещения ваших приложений.
Если вы работаете с Ruby на постоянной основе, вам необходимо научиться создавать индивидуализированные конфигурации Ruby при помощи RVM. Это поможет увеличить исходные установки, а также убережет вас от совершения дорогостоящих ошибок.