Wie aktualisiere ich Ruby Version 2.0.0 auf die neueste Version in Mac OSX Yosemite?

377

Ich muss meine Ruby-Version von 2.0.0 auf die neueste Version aktualisieren. Ich kann einige Edelsteine ​​nicht verwenden, da meine Version nicht aktualisiert wird. Ich hatte vor einiger Zeit Homebrew verwendet, um Ruby zu installieren. Wie kann ich meine Ruby-Version aktualisieren?

ChuchaC
quelle
Was passiert, wenn Sie which rvmoder which rbenvin Ihre Befehlszeile
eingeben
@ChuchaC Bitte werfen Sie einen Blick hier und hier
vhristoskov
1
sieht aus wie brew install rubyist genug. Überprüfen Sie hier
Venugopal

Antworten:

709

Öffnen Sie Ihr Terminal und führen Sie es aus

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

Wenn dies abgeschlossen ist, müssen Sie Ihr Terminal neu starten, damit der rvmBefehl funktioniert.

Jetzt renn los rvm list known

Dies zeigt die Liste der Versionen des Rubins.

Führen Sie jetzt rvm install ruby@latestdie neueste Ruby-Version aus.

Wenn Sie ruby -vdas Terminal eingeben, sollten Sie sehen ruby X.X.X.

Wenn es Ihnen immer noch zeigt ruby 2.0., laufen Sie rvm use ruby-X.X.X --default.

Abhinay Reddy Keesara
quelle
3
2.2.0 ist nicht die neueste Version von Ruby.
Jordan läuft
1
@ Jordan Mein schlechtes 2.3 ist die stabile Version
Abhinay Reddy Keesara
71
Dies funktioniert unter Mac OS, um RVM zu installieren:\curl -sSL https://get.rvm.io | bash -s stable --ruby
zed
7
2.4 ist die neueste stabile Version: rvm install ruby-2.4.0
seeARMS
7
Es ist ein Sicherheitsalptraum, der darauf wartet, dass die Curl-Ausgabe direkt zur Ausführung geleitet wird.
Arp
214

Nur Lösung brauen

Aktualisieren:

Aus den Kommentaren (Lob an Maksim Luzik) habe ich nicht getestet, aber es scheint eine elegantere Lösung zu sein:

Führen Sie nach der Installation von Ruby Through Brew den folgenden Befehl aus, um die Links zur neuesten Ruby-Installation zu aktualisieren: brew link --overwrite ruby

Ursprüngliche Antwort:

Spät zur Party, aber mit Gebräu ist genug. Es ist nicht notwendig, rvm zu installieren und für mich sind es nur komplizierte Dinge.

Indem brew install rubySie tatsächlich die neueste Version installieren (derzeit v2.4.0). Ihr Pfad findet jedoch zuerst 2.0.0. Um dies zu vermeiden, ändern Sie einfach die Priorität ( Quelle ). Ich habe dies getan, indem ich Folgendes geändert ~/.profileund eingestellt habe:

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

Danach stellte ich fest, dass Bundler Gem immer noch Version 2.0.0 verwendet. Installieren Sie es einfach erneut: gem install bundler

Sergio Basurco
quelle
2
Genau das, wonach ich gesucht habe, danke. Wenn ich ein Ruby-Entwickler wäre, würde rvm Sinn machen, aber ich bin es nicht, also ist das perfekt.
Max
4
Dies funktioniert, benötigt, um "source ~ / .bash_profile" nach der Installation zu tun
mjpablo23
9
oder führen Sie nach der Installation von Ruby Through brew link --overwrite ruby
Brew den
1
Anstelle der overwriteRuby-Version können Sie einfach schreibenbrew unlink ruby && brew link ruby
Hamsternik
7
Die Lösung von @MaksimLuzik funktioniert unter MacOS bei mir nicht. brew link --overwrite rubyführt zuWarning: Refusing to link macOS-provided software: ruby
Rafael Beckel
97

Ich empfehle rbenv * https://github.com/rbenv/rbenv

* Wenn dies Ihren Kriterien entspricht: https://github.com/rbenv/rbenv/wiki/Why-rbenv? ::

rbenv macht ...

  • Bieten Sie Unterstützung für die Angabe anwendungsspezifischer Ruby-Versionen .
  • Sie können die globale Ruby-Version auf Benutzerbasis ändern .
  • Hier können Sie die Ruby-Version mit einer Umgebungsvariablen überschreiben .

Im Gegensatz zu RVM rbenv

  • Müssen in Ihre Shell geladen werden. Stattdessen funktioniert der Shim-Ansatz von rbenv, indem Sie Ihrem Verzeichnis ein Verzeichnis hinzufügen $PATH.
  • Überschreiben Sie Shell-Befehle wie cdoder erfordern Sie sofortige Hacks. Das ist gefährlich und fehleranfällig.
  • Haben Sie eine Konfigurationsdatei. Es gibt nichts zu konfigurieren, außer welche Ruby-Version Sie verwenden möchten.
  • Installieren Sie Ruby. Sie können Ruby selbst erstellen und installieren oder Ruby-Build verwenden, um den Prozess zu automatisieren.
  • Verwalten Sie Edelsteine. Bundler ist eine bessere Möglichkeit, Anwendungsabhängigkeiten zu verwalten. Wenn Sie Projekte haben, die Bundler noch nicht verwenden, können Sie das Plugin rbenv-gemset installieren .
  • Aus Kompatibilitätsgründen sind Änderungen an Ruby-Bibliotheken erforderlich. Die Einfachheit von rbenv bedeutet $PATH, dass nichts anderes darüber wissen muss, solange es in Ihrem ist .

INSTALLATION

Installieren Sie Homebrew http://brew.sh

Dann:

$ Brew Update
 $ Brew install rbenv
$ Brew installiere rbenv ruby-build

# Fügen Sie rbenv zu bash hinzu, damit es jedes Mal geladen wird, wenn Sie ein Terminal öffnen
echo 'if which rbenv> / dev / null; dann eval "$ (rbenv init -)"; fi '>> ~ / .bash_profile
Quelle ~ / .bash_profile

UPDATE
Nach dembrew install rbenvAusführengibt es einen zusätzlichen Schrittrbenv init, zu dem eine Zeile hinzugefügt.bash_profilewird. Öffnen Sie danach Ihr Terminalfenster […] SGI 30. September um 12:01 - https://stackoverflow.com/users/119770

$ rbenv install --list
Verfügbare Versionen:
 1.8.5-p113
 1.8.5-p114
 […]
 2.3.1
 2.4.0-dev
 jruby-1.5.6
 […]
$ rbenv install 2.3.1
[…]

Stellen Sie die globale Version ein:

$ rbenv global 2.3.1
$ ruby ​​-v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]

Legen Sie die lokale Version Ihres Repos fest, indem .ruby-versionSie sie zum Stammverzeichnis Ihres Repos hinzufügen :

$ cd ~ / whatevs / projects / new_repo
$ echo "2.3.1"> .ruby-version

Für MacOS besuchen Sie diesen Link

SoAwesomeMan
quelle
3
@ChuchaC Kein Prob. Bevor Sie dies tun, stammt dies aus der rbenv-Readme-Datei: "Kompatibilitätshinweis: rbenv ist nicht mit RVM kompatibel. Stellen Sie sicher, dass Sie RVM vollständig deinstallieren und alle Verweise darauf aus Ihren Shell-Initialisierungsdateien entfernen, bevor Sie rbenv installieren." - github.com/rbenv/rbenv#installation
SoAwesomeMan
17
hat nicht geholfen. Immer noch Standard 2.0.0 Version für ruby -vAfterrbenv global ...
TuxSlayer
8
Nach dem brew install rbenvAusführen gibt es einen zusätzlichen Schritt, rbenv initund fügen Sie .bash_profile eine Zeile hinzu, wie angegeben. Öffnen Sie danach Ihr Terminalfenster erneut rbenv install 2.3.1, rbenv global 2.3.1und rbenv erledigt seine Arbeit
SGI
6
Wahrscheinlich spät, aber für zukünftige Referenzen für Leute, die auf dasselbe Problem wie @tuxSlayer gestoßen sind, rbenv rehashnachdem rbenv globalsie für mich gearbeitet haben
Sean
2
Danach rbenv initwird ruby -vdie richtige Version 2.1.2 ausgegeben, aber bei Bundle-Läufen tritt ein Fehler wie dieser auf paperclip-5.0.0.beta1 requires ruby version >= 2.1.0, which is incompatible with the current version, ruby 2.0.0p648. Schaffe es endlich, es mit einem Lauf von zum Laufen zu bringen rbenv rehash. Danke @ Sean
James
51

Terminal öffnen:

sudo gem update --system 

Es klappt!

Cristianetoo Geova
quelle
3
Dies scheint tatsächlich zu funktionieren und ist unermesslich einfacher als die anderen Antworten. Bei der Installation einiger Edelsteine ​​(zum Beispiel hören) beschweren sie sich jedoch, dass die Version niedriger als erforderlich ist.
William Isted
8
Dies ist Edelstein nicht Rubin
William GP
Brauen einzige Lösung hier
Sergio Basurco
2
Diese Antwort hat mich auch in die Irre geführt. Es "funktioniert", indem keine Fehler generiert werden, wenn Sie es von der Konsole aus ausführen. Ruby wird jedoch nicht aktualisiert. Es aktualisiert Ruby Gems. Befolgen Sie eine der anderen Antworten, um Ruby zu aktualisieren (unter Verwendung von OS X Sierra).
Informaton
41

Schneller Weg, um Ruby auf v2.4 + zu aktualisieren

brew upgrade ruby

oder

sudo gem update --system 
fatihyildizhan
quelle
4
Dies scheint eine Menge zu tun, aber das Aufrüsten von Ruby gehört nicht dazu. Es endet mit: /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
Dies ist der richtige und beste Weg, um die Ruby-Version mit Brew zu aktualisieren.
user1101733
Funktioniert bei mir nicht ERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
Sébastien Loisel
@ SébastienLoisel können Sie bitte einige Details über Ihr Betriebssystem, Befehl usw. geben
fatihyildizhan
1
@fatihyildizhan anscheinend ist ruby ​​/ gems / etc auf Mavericks in einem halb gebrochenen Zustand. Ich habe meine Probleme durch ein Upgrade auf Catalina behoben. Ich erinnere mich nicht an alle Fehler, die ich hatte, aber es gab eine Vielzahl. Ich kann mich nicht erinnern, ob ich versucht habe, Cocoapods oder Edelsteine ​​zu verbessern oder was, aber es war im Wesentlichen hoffnungslos.
Sébastien Loisel
31

Sie können die neueste Version von Ruby unter https://www.ruby-lang.org/en/downloads/ angeben.

  1. Holen Sie sich die neueste Version:

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

  2. Es installieren:

    rvm install 2.2

  3. Verwenden Sie es als Standard:

    rvm use 2.2 --default

Oder führen Sie den neuesten Befehl von Ruby aus:

rvm install ruby --latest
rvm use 2.2 --default
Julien Bouteloup
quelle
Danke, das hat bei mir funktioniert. Lösung mit rbenvfunktionierte nicht
tuxSlayer
Das hat auch bei mir funktioniert !! Die Lösung mit rbenvhat NICHT funktioniert
ruoho ruotsi
5

Wenn Sie ein Mac OS Brewinstalliert haben, können Sie den folgenden Befehl versuchen:

brew upgrade ruby
Zumry Mohamed
quelle
2

Falls jemand den gleichen Fehler wie ich erhält: "Anforderungsinstallation fehlgeschlagen mit Status: 1." Folgendes ist zu tun:

Installieren Sie Homebrew (aus irgendeinem Grund funktioniert es möglicherweise nicht automatisch) mit diesem Befehl:

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

Dann installieren Sie rvm erneut mit

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

Beenden Sie das Terminal und öffnen Sie es erneut.

rvm install 2.2
rvm use 2.2 --default
Paula Hasstenteufel
quelle
2

brew install rbenv ruby-build

Fügen Sie rbenv zu bash hinzu, damit es jedes Mal geladen wird, wenn Sie ein Terminal öffnen

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

source ~/.bash_profile

Installieren Sie Ruby

rbenv install 2.6.5

rbenv global 2.6.5

ruby -v

Link zur Quellseite
Karats Mohanraj
quelle
0

Im Terminal: rvm gemset use global

Aramis
quelle
5
Während dieses Code-Snippet die Lösung sein kann, hilft das Hinzufügen einer Erklärung wirklich, die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in Zukunft beantworten und diese Personen möglicherweise die Gründe für Ihren Codevorschlag nicht kennen.
Adam
-2

Am einfachsten ist es auf jeden Fall, den folgenden Befehl in das Terminal einzugeben:

sudo gem update --system

Sie können das Flag hinzufügen, --no-documentwenn Sie die Dokumentation nicht herunterladen möchten. Hier ist eine Beispielausgabe nach dem Ausführen des Befehls:

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
Reza Malik
quelle
1
Ist das nicht dasselbe wie die Antwort oben ? Ich bin gespannt, warum die Anzahl der Downvotes hier gegenüber den Upvotes dort? Liegt es an der doppelten Antwort oder daran, dass die Leute nicht früh genug begriffen haben, dass die frühere Lösung auch nur für Rubygems war, nicht für Ruby?
Informaton