Як оновити Ruby Version 2.0.0 до останньої версії Mac OSX Yosemite?


377

Мені потрібно оновити свою рубінову версію з 2.0.0 до останньої версії, я не можу використовувати деякі дорогоцінні камені, оскільки моя версія не оновлюється. Я раніше використовував Homebrew для встановлення Ruby. Як я можу оновити свою версію Ruby?


що відбувається під час введення which rvmабо which rbenvв командному рядку
MageeWorld

@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 -vтермінал, ви повинні побачити ruby X.X.X.

Якщо це все одно вам показує ruby 2.0., біжіть rvm use ruby-X.X.X --default.


3
2.2.0 - це не остання версія Ruby.
Йорданія, що працює

1
@Jordan Мій поганий 2.3 - це стабільна версія
Абхінай Редді Кізара

71
Це працює на Mac OS для встановлення RVM:\curl -sSL https://get.rvm.io | bash -s stable --ruby
zed

7
2.4 є останньою стабільною версією: rvm install ruby-2.4.0
дивітьсяARMS

7
виведення згортання труб прямо на виконання - це кошмар безпеки, який чекає цього.
арп

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

Після цього я виявив, що дорогоцінний дорогоцінний камінь все ще використовує версію 2.0.0, просто встановіть його ще раз: gem install bundler


2
Саме те, що я шукав, дякую. Якби я був рубіновим розробником, то rvm мав би сенс, але я ні, тому це ідеально.
Макс

4
це працює, потрібно зробити "source ~ / .bash_profile" після встановлення
mjpablo23

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

1
замість overwriteрубінової версії можна просто написатиbrew unlink ruby && brew link ruby
Hamsternik

7
Рішення @MaksimLuzik не працює для мене в 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 не…

  • Потрібно завантажити в свою оболонку. Натомість підхід rbenv shim працює, додаючи до себе каталог $PATH.
  • Заміна команд оболонки, як-от cdабо вимагають швидких хак. Це небезпечно і схильне до помилок.
  • Майте файл конфігурації. Налаштовувати нічого, крім версії Ruby, яку ви хочете використовувати.
  • Встановити Ruby. Ви можете створити і встановити Ruby самостійно або використовувати ruby-build для автоматизації процесу.
  • Керуйте гемсетами. Bundler - це кращий спосіб управління залежностями програми. Якщо у вас є проекти, які ще не використовують Bundler, ви можете встановити плагін rbenv-gemset .
  • Потрібні зміни в бібліотеках Ruby для сумісності. Простота rbenv означає, що поки він у вас $PATH, нічого іншого про це не потрібно знати.

ВСТАНОВКА

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

Тоді:

$ brew update
 $ brew install rbenv
$ brew встановити rbenv ruby-build

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

ОНОВЛЕННЯ
Післяbrew install rbenvзапускує ще один крокrbenv 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-дев
 jruby-1.5.6
 […]
$ rbenv встановити 2.3.1
[…]

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

$ rbenv глобальний 2.3.1
$ рубін -в
ruby 2.3.1p112 (версія 2016-04-26 54768) [x86_64-darwin15]

Встановіть локальну версію репо, додавши .ruby-versionдо кореневого режиму вашого репо :

$ cd ~ / whatevs / проекти / new_repo
$ echo "2.3.1"> .ruby-версія

Для MacOS перейдіть за цим посиланням


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 rbenvзапуску є один додатковий крок 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 

Це працює!


3
Це, мабуть, спрацьовує і є незмірно більш прямим вперед, ніж інші відповіді. Але при встановленні деяких дорогоцінних каменів (слухайте, наприклад) вони скаржаться, що версія нижча, ніж потрібно.
Вільям Істед

8
Це дорогоцінний камінь не рубіновий
William GP


2
Мене ця відповідь також ввела в оману. Він "працює", оскільки при запуску з консолі не виникає помилок. Однак Ruby не оновлює. Він оновлює Ruby Gems. Дотримуйтесь однієї з інших відповідей, щоб оновити Ruby (використовуючи OS X Sierra).
informaton

41

Швидкий спосіб оновити рубін до v2.4 +

brew upgrade ruby

або

sudo gem update --system 

4
Здається, це робиться багато тонн, але оновлення рубіну - не одне з них. Він закінчується: /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
Це правильний і найкращий спосіб оновити рубінову версію за допомогою brew.
користувач1101733

Не працює для мене. ERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
Себастьян Лойзель

@ SébastienLoisel Ви можете, будь ласка, дати детальну інформацію про вашу ОС, команду тощо
fatihyildizhan

1
@fatihyildizhan, мабуть, рубін / дорогоцінні камені / тощо знаходиться на напівзбитому стані на Mavericks. Я вирішив свої проблеми, перейшовши на Каталіну. Я не пам’ятаю всіх помилок, які я мав, але було багато людей. Я не можу пригадати, чи намагався я модернізувати какаоди або дорогоцінні камені чи що, але це було по суті безнадійно.
Sébastien Loisel

31

Ви можете вказати останню версію ruby, переглянувши https://www.ruby-lang.org/uk/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


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
Чи це не те саме, що відповідь вище ? Мені цікаво, чому кількість низовин тут проти обертаючих? Чи то через дублюючу відповідь, чи тому, що люди не зрозуміли досить скоро, що раніше рішення було також лише для рубігем, а не для Рубі?
informaton
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.