Как обновить Ruby до 1.9.x на Mac?


107

Я создал новую учетную запись пользователя на своем Mac, и я пытаюсь обновить ее до текущей версии ruby ​​(1.9.2) со снежного барса по умолчанию 1.8.7. Может ли кто-нибудь указать мне на учебник или объяснить лучший способ обновить Ruby на моем Mac с 1.8 до 1.9.2? Спасибо

Ответы:


66

Я сделаю сильное предложение для rvm .

Это отличный способ управлять несколькими наборами Rubies и драгоценных камней, не конфликтуя с версией системы.


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


Согласовано. И даже если несколько версий не проблема (ха!), Rvm отлично подходит для определения отсутствующих нативных библиотек. Совершенно необходимо.
Исаак Рабинович

198

Как предлагает The Tin Man (см. Выше) RVM ( Ruby Version Manager ) - это стандарт для обновления вашей установки Ruby на OSX: https://rvm.io

Для начала откройте окно терминала и выполните следующую команду:

\curl -L https://get.rvm.io | bash -s stable --ruby

(Вам нужно будет доверять в RVM Dev Team , что команда не злая - если ты параноик пингвин , как я, вы всегда можете идти читать источник : https://github.com/wayneeseguin/rvm ) Когда это полное вам необходимо перезапустить терминал, чтобы rvmкоманда заработала.

rvm list known

(показывает последние доступные версии Ruby)

rvm install ruby-2.3.1

Для конкретной версии, за которым следует

rvm use ruby-2.3.1

или если вам просто нужна последняя (текущая) версия:

rvm install current && rvm use current

(устанавливает текущий стабильный выпуск - на момент написания ruby-2.3.1 - обновите эту вики, когда будут выпущены новые версии)

Примечание по компиляции Ruby : в моем случае мне также пришлось установить Homebrew http://mxcl.github.com/homebrew/, чтобы получить нужные мне драгоценные камни ( RSpec ), что, в свою очередь, заставит вас установить Xcode (если вы еще не ) https://itunes.apple.com/us/app/xcode/id497799835 И / ИЛИ установите пакет GCC со страницы https://github.com/kennethreitz/osx-gcc-installer, чтобы избежать ошибок при запуске make .

Изменить: в Mavericks вы можете выбрать установку только инструментов командной строки Xcode вместо всего пакета Xcode, который поставляется с gcc и множеством других вещей, которые могут вам понадобиться для сборки пакетов. Его можно установить, запустив xcode-select --installи следуя подсказкам на экране.

Примечание об ошибках : если вы получаете сообщение об ошибке « RVM не является функцией » при попытке выполнить эту команду, посетите: Как мне изменить мою версию Ruby с помощью RVM? для решения.


Чтобы настроить все это на Mountain Lion, нужно много терпения. Если вы столкнетесь с ошибкой «Ошибка при запуске» env GEM_PATH = / Users / ... », это не ваши пути, и вы увидите в журнале, что openssl (который, вероятно, установлен) заблокирован в RVM, и они предоставляют страница про
Дилан Валад

4
Я действительно ненавижу беспорядок, который представляет собой Руби. Это беспорядки. Однако этот ответ направил меня на правильный путь, и большое спасибо за это!
Ян Льюис

1
Блуждая между сообщениями, которые приводят меня к другим проблемам, я нашел этот очень полезным, поскольку он объясняет, как использовать RVM, а не только использовать его.
Гектор Ордонез

19

С пивом это однострочник:

(при условии, что вы нажали homebrew / versions, что можно сделать, запустив brew tap homebrew/versions)

brew install ruby193

У меня работает "из коробки" на OS X 10.8.4. Или, если вы хотите 2.0, вы простоbrew install ruby

В более общем плане brew search rubyпоказывает вам различные доступные репозитории, и если вы хотите получить действительно конкретную информацию, вы можете brew versions rubyвместо этого использовать и проверить конкретную версию.


1
Отличный однострочник для установки определенной версии ruby! переключение между рубиновыми версиями с помощью brew не так просто ... stackoverflow.com/questions/8730676
nelsonic

4

Я знаю, что это более старый пост, но я хочу добавить дополнительную информацию об этом. Во-первых, я думаю, что rvmэто здорово, НО он не обновлял Ruby из моей системы (MAC OS Yosemite).

Что rvmделал: установка в другое место и настройка пути к моей переменной окружения ... И мне было немного скучно, потому что теперь в моей системе было два рубина.

Итак, чтобы исправить это, я удалил rvm, затем использовал диспетчер пакетов Homebrew, доступный здесь, и установил команду терминала ruby ​​throw, выполнив brew install ruby.

А потом все заработало отлично! Рубин из моей системы обновился! Надеюсь, это поможет следующим искателям приключений!


1
Я не мог решить, использовать ли мне rvmили brew. это помогает. спасибо
unifreak

Разве пиво не делает то же самое?
Anon

3

Я не соглашусь здесь с «Железным человечком». Я считаю, что rbenv предпочтительнее RVM. rbenvне вмешивается существенно в вашу оболочку, как это делает RVM, и позволяет вам добавлять отдельные установки Ruby в обычные папки, которые вы можете исследовать напрямую. Это позволяет вам компилировать Ruby самостоятельно. Хороший обзор различий здесь: https://github.com/sstephenson/rbenv/wiki/Why-rbenv%3F

Я предоставляю инструкции по компиляции Ruby 1.9 для rbenv здесь . Далее более подробная информация здесь . Я успешно использовал эту технику для снежного барса, льва и горного льва.


1
В то время, когда этот вопрос был первоначально задан, rbenv не подходил. Времена меняются, как и код. RVM по-прежнему является хорошим выбором, но он тяжелее по сравнению с rbenv. Я использую оба на разных машинах, потому что они оба полезны по-разному.
Железный Человек

2

Статья Дэна Бенджамина Hivelogic « Установка Ruby, RubyGems и Rails на Snow Leopard» является рекомендуемым местом, хотя статья предназначена для 1.8, так что вот установка для Ruby 1.9 на Snow Leopard . Остерегайтесь 64-битных вещей ... либо используйте все 64-битные `` жирные '' (как, например, Apache в OS X, что может вызвать проблемы с 32-битными библиотеками), либо проверьте любые драгоценные камни, которые вы, вероятно, чтобы убедиться, что они подходят для 64-разрядной версии.


2

Эта команда действительно работает

\curl -L https://get.rvm.io | bash -s stable --ruby


0

Как упоминалось ранее, версия связующего может быть слишком высокой для вашей версии rails.

Я столкнулся с той же проблемой, используя Rails 3.0.1, для которого требуется Bundler v1.0.0 - v1.0.22

Проверьте версию своего сборщика, используя: gem list bundler

Если версия вашего сборщика не находится в соответствующем диапазоне, я обнаружил, что это решение работает: rvm @global do gem uninstall bundler

Примечание: для этого решения требуется rvm ... еще один случай, почему вы должны использовать rvm в первую очередь.


0

Есть несколько других менеджеров версий, которые следует рассмотреть, см. Несколько примеров и один, которого нет в списке, который я скоро попробую, - это ch-ruby . Я попробовал rbenv, но у меня было слишком много проблем. RVM - моя опора, хотя иногда с ней возникают странные проблемы (отсюда и желание попробовать ch-ruby, когда у меня появится возможность). Я бы не стал трогать системный Ruby, так как на него могут полагаться другие вещи.

Я должен добавить, что я также несколько раз компилировал свой собственный Ruby, и использование статьи Hivelogic (как предложил Дэйв Эверитт) - хорошая идея, если вы выберете этот путь.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.