Как установить и использовать разные версии ruby?

16

Я изучаю рельсы из разных книг, которые используют разные версии как ruby, так и rails. Сейчас на моем Mac OS X Snow Leopard (in /usr/bin) установлен ruby ​​1.87, но мне также нужно использовать ruby ​​1.9 для другого приложения на rails.

Может кто-нибудь сказать мне, как сделать эту работу? Я новичок в этом, поэтому я буду благодарен как можно большему количеству инструкций.

Майкл
источник

Ответы:

21

Есть два "менеджера версий Ruby", которые вы можете выбрать:

Это позволяет вам хранить несколько версий Ruby в одной системе. После того, как вы установили менеджер версий и установили свою собственную версию Ruby, вы не будете связываться с Ruby вашей системы и его Gems, что является величайшим преимуществом. Нет больше sudo! Больше нет ошибок прав доступа и конфликтов Gem.

Какой из них выбрать?

Оба делают одно и то же, но следуют разным философиям. Выбор остается за вами.

Я лично рекомендую rbenvдля его простоты. Я использую его с годами, и он всегда работал хорошо. Ранее я бы порекомендовал RVM (и более ранняя версия этого ответа фактически упоминала об этом), но я чувствую, что в него сложнее попасть.

Как мне их установить?

Если вы выбираете rbenv:

  • Следуйте инструкциям по установке
  • устанавливать ruby-build
  • Запустить, rbenv install x.x.xгде x.x.xверсия (используйте, rbenv install --listчтобы увидеть, какие из них доступны
  • Запустите, rbenv global x.x.xчтобы изменить свою глобальную версию Ruby

Если вы выбираете RVM:

  • Используйте безопасный метод установки
  • Прочитайте инструкцию по установке - вы, вероятно, хотите однопользовательскую конфигурацию
  • Используйте rvm list knownдля отображения списка доступных Ruby, а затем запустите rvm install x.x.xдля установки определенной версии.
  • Используйте, rvm use x.x.x --defaultчтобы изменить свой Ruby по умолчанию
slhck
источник
1
Смотрите также rbenv .
user1686
@ grawity Почему бы не опубликовать другой ответ? Хорошо, что есть альтернативы, еще не очень изучены rbenv.
slhck
Большое спасибо, это также помогает переключаться между версиями Rails? В разных книгах я использую 3.05 (я думаю) и 3.1, и это вызывает проблемы ...
Майкл
Я попытался установить строку, которую вы написали (и которая также находится на сайте rvm) и получил сообщение об ошибке: bash: строка 152: команда git: не найдена bash: строка 154: команда git: не найдена
Майкл
Ах, тебе нужно git, конечно. Извините, я забыл это. Вы можете установить Git с помощью установщика OS X (просто выберите последнюю версию вверху).
Slhck
7

Я думаю, что rbenv заслуживает по крайней мере своего собственного ответа.

Между фанатами rbenv и RVM постоянно идет борьба, но лично мне больше нравится rbenv. Как утверждает Сэм Стивенсон (автор), rbenv занимается исключительно переключением версий Ruby (в отличие от RVM, который делает намного больше).

На OS X особенно легко попробовать. Просто следуйте отличным инструкциям по установке на странице Github (если у вас установлен Homebrew, это просто brew install rbenv ruby-build).

Что касается переключения версий Rails, я однажды написал статью о том, что может вас заинтересовать.

Михаил Троянек
источник
1
Вот краткое описание автора rbenv об основных различиях с RVM и причинах выбора rbenv. Простота rbenv была главной причиной для меня отойти от RVM. IMO лучше управляет наборами драгоценных камней для конкретных приложений с помощью Bundler - для этого вам не нужен менеджер версий Ruby.
Йохем Шуленклоппер
Именно - управление наборами драгоценных камней для конкретного приложения является задачей Бандлера . Я никогда не был поклонником гемсетов, привязанных к менеджерам версий.
Майкл Троянек