Статьи

Чруби и Рбенв Советы и хитрости

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. Я использовал каждый из них сам с отличными результатами. Каждый из них легко расширяется и прост в использовании. Приведенные выше сценарии должны были имитировать реальную жизнь, но если вы оказались в сценарии, который не был описан выше, не стесняйтесь оставлять комментарии.