Rbenv и Chruby — классные ребята в квартале. Очевидно, что мы хотим получить максимум от наших любимых инструментов. Так что эта статья не о том, что нравится больше, и не является введением ни в менеджер версий. Вместо этого мы рассмотрим некоторые передовые способы использования rbenv и chruby, чтобы максимизировать вашу производительность.
Настроить
Если у вас нет опыта работы с rbenv или chruby, вы должны сначала прочитать их файлы README
, но вот быстрый старт:
Примечание по установке Homebrew . Я люблю Homebrew, но было бы излишним повторять, что brew install whatever
для brew install whatever
угодно, потому что я также покажу ручной (git) метод. Другими словами, если вы сталкиваетесь с чем-то и не хотите устанавливать его через git, просто brew install
!
rbenv
Сначала скачайте rbenv.
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
В файле конфигурации вашей оболочки (вы должны знать, что у вас: ~\.(bash|zsh)(rc|_profile)
), добавьте следующее:
(Вы можете пропустить этот шаг, если вы установили через Homebrew.)
# rbenv export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"
chruby
Тот же процесс, что и в rbenv, но немного другой.
$ git clone git://github.com/postmodern/chruby.git ~/.chruby $ cd ~/.chruby $ sudo make install
ИЛИ
$ wget -O chruby-0.3.8.tar.gz https://github.com/postmodern/chruby/archive/v0.3.8.tar.gz $ tar -xzvf chruby-0.3.8.tar.gz $ cd chruby-0.3.8/ $ sudo make install
Мне больше нравится первое, потому что оно легко запоминается и лаконично. Выбирайте.
Добавьте это к вашей конфигурации оболочки:
# chruby source /usr/local/share/chruby/chruby.sh
Перезагрузите оболочку и все готово! Попробуйте запустить rbenv
или chruby
чтобы посмотреть, сработало ли это. Если у вас не установлены какие-либо версии ruby, это нормально. Посмотрите на ruby-install или ruby-build .
Сценарии
Теперь, когда вы все настроили, я собираюсь пробежать несколько реалистичных сценариев и узнать, как их решить, используя rbenv и chruby. Пошли!
Я хочу, чтобы моя версия Ruby менялась автоматически.
Rbenv делает это автоматически. Не требуется никаких плагинов.
Chruby также делает это, но вы должны добавить source /usr/local/share/chruby/auto.sh
файл source /usr/local/share/chruby/auto.sh
в конфигурацию вашей оболочки. Вот и все.
Я держу свои версии Ruby где-то еще.
Это может быть полезно при переключении с rbenv на chruby или наоборот. Замените данный каталог тем каталогом, в котором вы храните свои рубины.
Rbenv нужно немного взломать, но это просто символическая ссылка.
$ ln -s /opt/rubies/2.1.5 ~/.rbenv/versions/2.1.5
У Chruby есть массив ( $RUBIES
) как раз для этой цели. Добавьте это к вашей конфигурации оболочки:
RUBIES+=(~/.rbenv/versions/*)
Я хочу глобальную версию Ruby по умолчанию.
Оба позволяют создать глобальный файл ~/.ruby-version
который вы можете поместить в свои файлы точек . (например, echo "2.1.5" > ~/.ruby-version
) Тем не менее, предполагается, что у вас включено автоматическое переключение версий Chruby.
Rbenv имеет rbenv global 2.1.5
.
Chruby позволяет вам называть себя в вашей конфигурации оболочки следующим образом:
# below other chruby config chruby 2.1.5
Мой проект использует другое имя версии Ruby.
Иногда проект будет иметь странный префикс (например, ruby-
RVM) перед реальной версией. Если chruby или rbenv не могут найти данную версию, это простая символическая ссылка. В этом примере наш проект имеет файл версии Ruby, в котором указан ruby-2.1.5
, но наша версия называется 2.1.5
.
$ cd ~/. $ ln -s 2.1.5 ruby-2.1.5
Прикольные плагины Rbenv
Отличительной особенностью rbenv является отсутствие таких функций, как RVM. Однако иногда нам хочется чего-то дополнительного. Давайте посмотрим на несколько плагинов для rbenv. Чтобы установить их, вам нужно проверить репозиторий каждого плагина GitHub для раздела установки. Обычно это просто git clone
, но вы также можете использовать Homebrew.
Вы можете увидеть полный список доступных плагинов здесь.
rbenv-гем-перепев
https://github.com/sstephenson/rbenv-gem-rehash
Rbenv использует исполняемые шайбы для загрузки Ruby и его гемов. Запуск rbenv rehash
обновляет эти прокладки. После каждой установки gem запускайте rbenv rehash
. К счастью для нас, этот плагин автоматически меняет прокладки. Конфигурации нет, просто установите ее, и вам больше никогда не придется перефразировать rbenv.
rbenv использования
https://github.com/rkh/rbenv-use
Итак, вы все еще неравнодушны к нескольким командам RVM, а? Одна из этих команд — rvm use VERSION
. Этот плагин добавляет rbenv use VERSION
команды rbenv use VERSION
для облегчения этого перехода. Тем не менее, вы не должны полагаться на этот плагин для своих проектов. .ruby-version
должен устанавливать вашу версию в большинстве ваших сред.
rbenv-псевдонимы
https://github.com/tpope/rbenv-aliases
Вы можете заметить, что мы решили эту проблему ранее с помощью простой символической ссылки, но этот плагин делает то же самое. Это просто rbenv alias VERSION\_ALIAS REAL\_VERSION
.
rbenv-каждый
https://github.com/chriseppstein/rbenv-each
Этот плагин запускает команду для каждой версии Ruby в вашей системе. Наиболее вероятная ситуация, с которой я столкнулся, это тестирование нескольких версий. Синтаксис похож на синтаксис bundle exec
, просто запустите rbenv each <a command>
чтобы запустить команду для каждого Ruby.
rbenv-Судо
https://github.com/dcarley/rbenv-sudo
Иногда необходимо запустить Ruby от имени пользователя root, но обычно это очень болезненный и грязный процесс. К счастью, этот плагин делает именно это! Просто запустите rbenv sudo <a command>
чтобы запустить команду как корневой процесс Ruby.
В заключение
Rbenv и chruby — отличные менеджеры версий Ruby. Я использовал каждый из них сам с отличными результатами. Каждый из них легко расширяется и прост в использовании. Приведенные выше сценарии должны были имитировать реальную жизнь, но если вы оказались в сценарии, который не был описан выше, не стесняйтесь оставлять комментарии.