Wie aktualisiere ich Ruby auf 1.9.x auf dem Mac?

107

Ich habe ein neues Benutzerkonto auf meinem Mac erstellt und versuche, von der Standardeinstellung für Schneeleoparden 1.8.7 auf die aktuelle Version von Ruby (1.9.2) zu aktualisieren. Kann mich jemand auf ein Tutorial verweisen oder die beste Methode erklären, um Ruby auf meinem Mac von 1.8 auf 1.9.2 zu aktualisieren? Vielen Dank

agentbanks217
quelle

Antworten:

66

Ich werde einen starken Vorschlag für rvm machen .

Es ist eine großartige Möglichkeit, mehrere Rubine und Edelsteine ​​zu verwalten, ohne mit der Systemversion zu kollidieren.


Ich werde jetzt (02.04.2013) hinzufügen, dass ich rbenv häufig benutze , weil meine Bedürfnisse einfach sind. RVM ist großartig, aber es hat eine Menge Funktionen, die ich nie brauche, also habe ich es auf einigen Computern und rbenv auf meinem Desktop und Laptop. Es lohnt sich, beide zu prüfen und herauszufinden, welche für Ihre Anforderungen am besten geeignet ist.

der Blechmann
quelle
Einverstanden. Und selbst wenn mehrere Versionen kein Problem darstellen (ha!), Ist rvm ideal, um herauszufinden, welche nativen Bibliotheken fehlen. Ziemlich unverzichtbar.
Isaac Rabinovitch
198

Wie The Tin Man (oben) vorschlägt, ist RVM ( Ruby Version Manager ) der Standard für die Aktualisierung Ihrer Ruby-Installation unter OSX: https://rvm.io

Öffnen Sie zunächst ein Terminalfenster und geben Sie den folgenden Befehl ein:

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

(Sie müssen dem RVM Dev Team vertrauen, dass der Befehl nicht böswillig ist. Wenn Sie ein paranoider Pinguin wie ich sind, können Sie jederzeit die Quelle lesen : https://github.com/wayneeseguin/rvm ) Wenn er abgeschlossen ist Sie müssen das Terminal neu starten , damit der rvmBefehl funktioniert.

rvm list known

(zeigt Ihnen die neuesten verfügbaren Versionen von Ruby)

rvm install ruby-2.3.1

Für eine bestimmte Version, gefolgt von

rvm use ruby-2.3.1

oder wenn Sie nur die neueste (aktuelle) Version möchten:

rvm install current && rvm use current

(Installiert die aktuelle stabile Version - zum Zeitpunkt des Schreibens von Ruby-2.3.1 - bitte aktualisieren Sie dieses Wiki, wenn neue Versionen veröffentlicht werden.)

Hinweis zum Kompilieren von Ruby : In meinem Fall musste ich auch Homebrew http://mxcl.github.com/homebrew/ installieren , um die benötigten Edelsteine ( RSpec ) zu erhalten, die Sie wiederum zur Installation von Xcode zwingen (falls Sie dies noch nicht getan haben ) ) https://itunes.apple.com/us/app/xcode/id497799835 UND / ODER installieren Sie das GCC-Paket von: https://github.com/kennethreitz/osx-gcc-installer , um Fehler beim Ausführen von " make " zu vermeiden .

Bearbeiten: Ab Mavericks können Sie nur die Xcode-Befehlszeilentools anstelle des gesamten Xcode-Pakets installieren, das mit gcc und vielen anderen Dingen geliefert wird, die Sie möglicherweise zum Erstellen von Paketen benötigen. Es kann installiert werden, indem Sie die xcode-select --installEingabeaufforderung auf dem Bildschirm ausführen und befolgen.

Hinweis zu Fehlern : Wenn beim Ausführen dieses Befehls die Fehlermeldung " RVM ist keine Funktion " angezeigt wird , besuchen Sie: Wie ändere ich meine Ruby-Version mit RVM? für die Lösung.

nelsonic
quelle
All dies auf Mountain Lion einzurichten, erfordert viel Geduld. Wenn Sie auf den Fehler "Fehler beim Ausführen von 'env GEM_PATH = / Users / ..." stoßen, sind dies nicht Ihre Pfade, und Sie werden im Protokoll sehen, dass openssl (das wahrscheinlich installiert ist) in RVM kaputt ist und sie a bereitstellen Seite über das Durcharbeiten rvm.io/packages/openssl
Dylan Valade
4
Ich hasse das Chaos, das Ruby ist. Es ist ein Durcheinander. Diese Antwort hat mich jedoch auf den richtigen Weg gebracht und vielen Dank dafür!
Ian Lewis
1
Als ich zwischen Beiträgen hin und her wanderte, die mich zu anderen Problemen führten, fand ich diesen sehr hilfreich, da er erklärt, wie man RVM verwendet und nicht nur.
Hector Ordonez
19

Beim Brauen ist dies ein Einzeiler:

(vorausgesetzt, Sie haben Homebrew / Versionen getippt, was durch Ausführen erfolgen kann brew tap homebrew/versions)

brew install ruby193

Unter OS X 10.8.4 hat es für mich sofort funktioniert. Oder wenn Sie 2.0 wollen, dann einfachbrew install ruby

Im Allgemeinen werden brew search rubyIhnen die verschiedenen verfügbaren Repos angezeigt. Wenn Sie wirklich spezifisch werden möchten, können Sie brew versions rubystattdessen eine bestimmte Version verwenden und auschecken.

Nils
quelle
1
Großartiger Einzeiler für die Installation einer bestimmten Version von Ruby! Das Wechseln zwischen Ruby-Versionen mit Brew
nelsonic
4

Ich weiß, dass es ein älterer Beitrag ist, aber ich möchte einige zusätzliche Informationen dazu hinzufügen. Erstens finde ich das rvmgroßartig, ABER es hat Ruby nicht von meinem System (MAC OS Yosemite) aktualisiert.

Was rvmwar zu tun: an einem anderen Ort installieren und dort den Pfad zu meiner Umgebungsvariablen einrichten ... Und ich war irgendwie gelangweilt, weil ich jetzt zwei Rubine auf meinem System hatte.

Um dies zu beheben, habe ich das deinstalliert rvm, dann den hier verfügbaren Homebrew-Paketmanager verwendet und dabei den Befehl ruby ​​throw terminal installiert brew install ruby.

Und dann hat alles perfekt funktioniert! Der Rubin von meinem System wurde aktualisiert! Hoffe es wird für die nächsten Abenteurer helfen!

Damiii
quelle
1
Ich hatte Mühe zu entscheiden, ob ich rvmoder verwenden sollte brew. das hilft. danke
unifreak
Macht Brauen nicht auch das Gleiche?
anon
3

Ich werde hier mit The Tin Man nicht einverstanden sein. Ich halte rbenv für RVM vorzuziehen. rbenvBeeinträchtigt Ihre Shell nicht drastisch wie RVM und ermöglicht es Ihnen, separate Ruby-Installationen in normalen Ordnern hinzuzufügen, die Sie direkt untersuchen können. Sie können Ruby selbst kompilieren. Guter Überblick über die Unterschiede hier: https://github.com/sstephenson/rbenv/wiki/Why-rbenv%3F

Ich gebe hier Anweisungen zum Kompilieren von Ruby 1.9 für rbenv . Weitere, detailliertere Informationen hier . Ich habe diese Technik mit leichtem Erfolg bei Schneeleoparden, Löwen und Berglöwen angewendet.

matt
quelle
1
Zu dem Zeitpunkt, als diese Frage ursprünglich gestellt wurde, war rbenv keine Option. Die Zeiten ändern sich ebenso wie der Code. RVM ist immer noch eine gute Wahl, aber es ist schwer im Vergleich zu rbenv. Ich benutze beide auf verschiedenen Maschinen, weil sie beide auf unterschiedliche Weise nützlich sind.
der Blechmann
2

Dan Benjamins Hivelogic-Artikel Die Installation von Ruby, RubyGems und Rails auf Snow Leopard ist der empfohlene Ort, obwohl der Artikel für 1.8 ist. Hier ist eine Ruby 1.9-spezifische Installation auf Snow Leopard . Achten Sie auf die 64-Bit-Sache ... entweder gehen Sie alle 64-Bit-Fett (wie zum Beispiel Apache unter OS X, was Probleme mit 32-Bit-Bibliotheken verursachen kann) oder überprüfen Sie alle Edelsteine, die Sie wahrscheinlich sind zu verwenden, um sicherzustellen, dass sie für 64-Bit in Ordnung sind.

Dave Everitt
quelle
2

Dieser Befehl funktioniert tatsächlich

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

Anthony
quelle
0

Wie bereits erwähnt, ist die Bundler-Version möglicherweise zu hoch für Ihre Schienenversion.

Ich bin mit Rails 3.0.1 auf dasselbe Problem gestoßen, für das Bundler v1.0.0 - v1.0.22 erforderlich ist

Überprüfen Sie Ihre Bundler-Version mit: gem list bundler

Wenn Ihre Bundler-Version nicht im entsprechenden Bereich liegt, hat diese Lösung funktioniert: rvm @global do gem uninstall bundler

Hinweis: Für diese Lösung ist rvm erforderlich ... ein weiterer Fall, warum Sie rvm überhaupt verwenden sollten.

Whiteshooz
quelle
0

Es gibt mehrere andere Versionsmanager, die in Betracht gezogen werden müssen, siehe einige Beispiele, und einer, der dort nicht aufgeführt ist und den ich bald ausprobieren werde, ist ch-ruby . Ich habe rbenv ausprobiert, hatte aber zu viele Probleme damit. RVM ist meine Hauptstütze, obwohl es manchmal das seltsame Problem hat (daher mein Wunsch, ch-ruby zu probieren, wenn ich eine Chance bekomme). Ich würde das System Ruby nicht berühren, da andere Dinge davon abhängen könnten.

Ich sollte hinzufügen, dass ich auch mehrmals meinen eigenen Ruby kompiliert habe, und die Verwendung des Hivelogic-Artikels (wie Dave Everitt vorgeschlagen hat) ist eine gute Idee, wenn Sie diesen Weg einschlagen.

iain
quelle