Как обновить Ruby версии 2.0.0 до последней версии в Mac OSX Yosemite?

377

Мне нужно обновить мою версию ruby ​​с 2.0.0 до последней версии, я не могу использовать некоторые гемы, потому что моя версия не обновлена. Некоторое время назад я использовал Homebrew для установки Ruby. Как я могу обновить свою версию Ruby?

ChuchaC
источник
что происходит, когда вы which rvmwhich rbenv
печатаете
@ChuchaC Пожалуйста, посмотрите здесь и здесь
vhristoskov
1
похоже brew install rubyдостаточно. проверьте здесь
Venugopal

Ответы:

709

Откройте свой терминал и запустите

curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s stable

Когда это будет завершено, вам нужно перезапустить свой терминал, чтобы rvmкоманда заработала.

Теперь беги rvm list known

Это показывает список версий рубина.

Теперь бегите, rvm install ruby@latestчтобы получить последнюю версию ruby.

Если вы наберете ruby -vв терминале, вы должны увидеть ruby X.X.X.

Если он все еще показывает вам ruby 2.0., бегите rvm use ruby-X.X.X --default.

Абхинай Редди Кисара
источник
3
2.2.0 не является последней версией Ruby.
Джордан, бегущий
1
@Jordan My bad 2.3 - стабильная версия
Абхинай Редди Кисара
72
Это работает на Mac OS для установки RVM:\curl -sSL https://get.rvm.io | bash -s stable --ruby
zed
7
2.4 является последней стабильной версией: rvm install ruby-2.4.0
seeARMS
7
конвейерный вывод локонов прямо к исполнению - кошмар безопасности, ожидающий своего появления.
ARP
214

Варить только решение

Обновить:

Судя по комментариям (спасибо Максиму Лузику), я не тестировал, но кажется более элегантным решением:

После установки ruby ​​через brew выполните следующую команду, чтобы обновить ссылки на последнюю установку ruby: brew link --overwrite ruby

Оригинальный ответ:

Опоздал на вечеринку, но достаточно заварить. Не обязательно устанавливать rvm и для меня это просто сложные вещи.

На brew install rubyсамом деле вы устанавливаете последнюю версию (в настоящее время v2.4.0). Тем не менее, ваш путь сначала находит 2.0.0. Чтобы избежать этого, просто измените приоритет ( источник ). Я сделал это, изменив ~/.profileи установив:

export PATH=/usr/local/bin:$PATH

После этого я обнаружил, что в пакете gem все еще используется версия 2.0.0, просто установите его снова: gem install bundler

Серхио Басурко
источник
2
Именно то, что я искал, спасибо. Если бы я был разработчиком ruby, тогда rvm имел бы смысл, но я нет, так что это идеально.
Макс
4
это работает, нужно сделать «source ~ / .bash_profile» после установки
mjpablo23
9
или после установки ruby ​​через brew выполните следующую команду, чтобы обновить ссылки на последнюю установку ruby:brew link --overwrite ruby
Максим Лузик,
1
вместо overwriteрубиновой версии можно просто написатьbrew unlink ruby && brew link ruby
Hamsternik
7
Решение @MakimLuzik не работает для меня в MacOS. brew link --overwrite rubyприводит кWarning: Refusing to link macOS-provided software: ruby
Рафаэль Беккель
97

Я рекомендую rbenv * https://github.com/rbenv/rbenv

* Если это соответствует вашим критериям: https://github.com/rbenv/rbenv/wiki/Why-rbenv? :

rbenv делает ...

  • Обеспечить поддержку для указания специфичных для приложения версий Ruby .
  • Позвольте вам изменить глобальную версию Ruby для каждого пользователя.
  • Позвольте вам переопределить версию Ruby с помощью переменной окружения.

В отличие от RVM, rbenv не…

  • Необходимо загрузить в вашу оболочку. Вместо этого подход shb rbenv работает, добавляя каталог к ​​вашему $PATH.
  • Переопределить команды оболочки, такие как cdили требовать быстрых хаков. Это опасно и подвержено ошибкам.
  • Есть файл конфигурации. Там нет ничего для настройки, кроме какой версии Ruby вы хотите использовать.
  • Установите Ruby. Вы можете собрать и установить Ruby самостоятельно или использовать ruby-build для автоматизации процесса.
  • Управляйте наборами драгоценных камней. Bundler - лучший способ управления зависимостями приложений. Если у вас есть проекты, которые еще не используют Bundler, вы можете установить плагин rbenv-gemset .
  • Требовать внесения изменений в библиотеки Ruby для совместимости. Простота rbenv означает, что пока он у вас $PATH, больше ничего не нужно знать об этом.

УСТАНОВКА

Установите Homebrew http://brew.sh

Затем:

$ brew update
 $ brew install rbenv
$ brew install rbenv ruby-build

# Добавьте rbenv в bash, чтобы он загружался каждый раз, когда вы открываете терминал
echo 'если какой rbenv> / dev / null; затем eval "$ (rbenv init -)"; fi '>> ~ / .bash_profile
источник ~ / .bash_profile

ОБНОВЛЕНИЕ
Есть один дополнительный шаг послеbrew install rbenvRunrbenv initи добавьте одну строку,.bash_profileкак указано. После этого снова откройте окно терминала […] SGI 30 сентября в 12:01 - https://stackoverflow.com/users/119770

$ rbenv install --list
Доступные версии:
 1.8.5-P113
 1.8.5-P114
 [...]
 2.3.1
 2.4.0-DEV
 JRuby-1.5.6
 [...]
$ rbenv установить 2.3.1
[...]

Установите глобальную версию:

$ rbenv global 2.3.1
$ ruby ​​-v
ruby 2.3.1p112 (ревизия 2016-04-26, 54768) [x86_64-darwin15]

Установите локальную версию репо, добавив .ruby-version в корневой каталог вашего репо:

$ cd ~ / whatevs / projects / new_repo
$ echo "2.3.1"> .ruby-версия

Для MacOS перейдите по этой ссылке

SoAwesomeMan
источник
3
@ChuchaC Нет проблем. Но прежде чем это сделать, это из readme rbenv: «Примечание о совместимости: rbenv несовместим с RVM. Пожалуйста, убедитесь, что полностью удалили RVM и удалите все ссылки на него из файлов инициализации оболочки перед установкой rbenv». - github.com/rbenv/rbenv#installation
SoAwesomeMan
17
не помогло Все еще получаю стандартную версию 2.0.0 для ruby -vпослеrbenv global ...
tuxSlayer
8
Есть один дополнительный шаг после brew install rbenvRun rbenv initи добавьте одну строку в .bash_profile, как указано. После этого снова откройте окно терминала, сделайте rbenv install 2.3.1, rbenv global 2.3.1и rbenv выполнит свою работу
SGI
6
Возможно, поздно, но для будущих ссылок для людей, которые столкнулись с той же проблемой, что и @tuxSlayer, rbenv rehashпосле того , как rbenv globalработал на меня
Шон
2
После того, как rbenv init, ruby -vвыводит правильную версию 2.1.2, но расслоение пробеги встречает ошибку , как это paperclip-5.0.0.beta1 requires ruby version >= 2.1.0, which is incompatible with the current version, ruby 2.0.0p648. Наконец удалось заставить его работать с пробегом rbenv rehash. Спасибо @Sean
Джеймс
51

Открытый терминал:

sudo gem update --system 

Оно работает!

Cristianetoo Geova
источник
3
Похоже, это действительно работает, и это неизмеримо более прямолинейно, чем другие ответы. Но при установке некоторых драгоценных камней (слушайте, например) они жалуются, что версия ниже, чем требуется.
Уильям Истед
8
Это камень не рубин
Уильям GP
Варить единственное решение здесь
Серхио Басурко
2
Этот ответ меня тоже ввел в заблуждение. Это «работает» в том, что при запуске из консоли не генерируются ошибки. Тем не менее, он не обновляет Ruby. Обновляет Ruby Gems. Выполните один из других ответов, чтобы обновить Ruby (используя OS X Sierra).
информация
41

Быстрый способ обновить ruby ​​до v2.4 +

brew upgrade ruby

или

sudo gem update --system 
fatihyildizhan
источник
4
Похоже, это делает кучу вещей, но обновление ruby ​​не входит в их число. Он заканчивается: /usr/local/Homebrew/Library/Homebrew/brew.rb:12:in '<main>': Homebrew must be run under Ruby 2.3! You're running 2.0.0. (RuntimeError)
nkoren
1
Это правильный и лучший способ обновить версию ruby, используя brew.
user1101733
Не работает для меня ERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
Себастьян Луазель
@ SébastienLoisel
Можете
1
@fatihyildizhan, по-видимому, ruby ​​/ gems / etc находится в полузамкнутом состоянии на Маверикс. Я решил свои проблемы, перейдя на Каталину. Я не помню всех ошибок, которые у меня были, но их было множество. Я не могу вспомнить, пытался ли я обновить Cocoapods или драгоценные камни или что-то, но это было по существу безнадежно.
Себастьян Луазель
31

Вы можете указать последнюю версию ruby, посмотрев на https://www.ruby-lang.org/en/downloads/.

  1. Получить последнюю версию:

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

  2. Установите это:

    rvm install 2.2

  3. Используйте его по умолчанию:

    rvm use 2.2 --default

Или запустите последнюю команду из ruby:

rvm install ruby --latest
rvm use 2.2 --default
жюльен бутелуп
источник
Спасибо, это сработало для меня. Решение с rbenvне работало
tuxSlayer
Это сработало и для меня !! Решение с rbenvне сработало
ruoho ruotsi
5

Если у вас есть Mac OS и Brewустановлен, вы можете попробовать следующую команду,

brew upgrade ruby
Зумры Мохамед
источник
2

В случае, если кто-то получит такую ​​же ошибку, я сделал: «Установка требований завершилась со статусом: 1.»вот что нужно сделать:

Установите Homebrew (по некоторым причинам может не работать автоматически) с помощью этой команды:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Затем снова установите rvm, используя

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

Выйдите и снова откройте Терминал и затем:

rvm install 2.2
rvm use 2.2 --default
Паула Хассентойфель
источник
2

brew install rbenv ruby-build

Добавьте rbenv в bash, чтобы он загружался каждый раз, когда вы открываете терминал

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile

source ~/.bash_profile

Установите Ruby

rbenv install 2.6.5

rbenv global 2.6.5

ruby -v

Ссылка на исходную страницу
Карац Моханрадж
источник
0

В терминале: rvm gemset use global

Арамис
источник
5
Хотя этот фрагмент кода может быть решением, включение пояснения действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код.
Адам
-2

Самый простой способ - ввести следующую команду в терминале:

sudo gem update --system

Вы можете добавить флаг, --no-documentесли вы не хотите загружать документацию. Вот пример вывода после выполнения команды:

sudo gem update --system
Password:
Updating rubygems-update
Fetching: rubygems-update-2.6.8.gem (100%)
Successfully installed rubygems-update-2.6.8
Parsing documentation for rubygems-update-2.6.8
Installing ri documentation for rubygems-update-2.6.8
Installing darkfish documentation for rubygems-update-2.6.8
Installing RubyGems 2.6.8
RubyGems 2.6.8 installed
Parsing documentation for rubygems-2.6.8
Installing ri documentation for rubygems-2.6.8

------------------------------------------------------------------------------

RubyGems installed the following executables:
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/gem

Ruby Interactive (ri) documentation was installed. ri is kind of like man 
pages for ruby libraries. You may access it like this:
  ri Classname
  ri Classname.class_method
  ri Classname#instance_method
Реза Малик
источник
1
Разве это не то же самое, что ответ выше ? Мне любопытно, почему количество отрицательных голосов здесь против положительных голосов там? Это из-за двойного ответа или из-за того, что люди не поняли достаточно быстро, что более раннее решение было также только для рубинов, а не для Ruby?
информация