Wie installiere und verwende ich verschiedene Versionen von Ruby?


15

Ich lerne Schienen aus verschiedenen Büchern, die unterschiedliche Versionen von Rubin und Schienen verwenden. Im Moment habe ich Ruby 1.87 auf meinem Mac OS X Snow Leopard (in /usr/bin) installiert , muss aber auch Ruby 1.9 für eine andere Rails-Anwendung verwenden.

Kann mir jemand sagen, wie das funktioniert? Ich bin neu in diesem Bereich, daher wären so viele Anweisungen wie möglich sehr dankbar.

Antworten:


20

Es gibt zwei "Ruby-Versionsmanager", aus denen Sie auswählen können:

Mit diesen können Sie mehrere Ruby-Versionen auf demselben System behalten. Sobald Sie einen Versionsmanager installiert und Ihre eigene Ruby-Version installiert haben, werden Sie sich nicht mehr mit Ruby und seinen Gems Ihres Systems herumschlagen, was der größte Vorteil ist. Nicht mehr sudo! Keine Berechtigungsfehler und Gem-Konflikte mehr.

Welches soll ich nehmen?

Beide machen dasselbe, aber sie folgen unterschiedlichen Philosophien. Die Wahl liegt bei Ihnen.

Ich persönlich würde es rbenvwegen seiner Einfachheit empfehlen . Ich benutze es seit Jahren und es hat immer gut funktioniert. Früher hätte ich RVM empfohlen (und eine frühere Version dieser Antwort hat es tatsächlich erwähnt), aber ich denke, es ist schwieriger, darauf einzugehen.

Wie installiere ich sie?

Wenn Sie wählen rbenv:

  • Befolgen Sie die Installationsanweisungen
  • Installieren ruby-build
  • Führen Sie aus, rbenv install x.x.xwo x.x.xsich die Version befindet (verwenden rbenv install --listSie diese Option, um festzustellen, welche verfügbar sind
  • Führen rbenv global x.x.xSie diese Option aus , um Ihre globale Ruby-Version zu ändern

Wenn Sie RVM wählen:

  • Verwenden Sie die sichere Installationsmethode
  • Lesen Sie die Installationsanweisungen - Sie möchten wahrscheinlich die Einzelbenutzerkonfiguration
  • Verwenden Sie rvm list knowndiese Option rvm install x.x.x, um verfügbare Rubine aufzulisten und anschließend auszuführen , um eine bestimmte Version zu installieren.
  • Verwenden rvm use x.x.x --defaultSie diese Option, um Ihren Standard-Ruby zu ändern

1
Siehe auch rbenv .
user1686

@grawity Warum nicht noch eine Antwort posten? Gut, Alternativen zu haben, habe noch nicht wirklich geprüft rbenv.
Slhck

Vielen Dank, hilft es auch, zwischen Rails-Versionen zu wechseln? Verschiedene Bücher, die ich benutze, beschäftigen 3.05 (glaube ich) und 3.1 und es verursacht Probleme ...
Michael

Ich habe die Installationszeile ausprobiert, die Sie geschrieben haben (und die sich auch auf der RVM-Site befindet) und eine Fehlermeldung erhalten: bash: Zeile 152: git: Befehl nicht gefunden bash: Zeile 154: git: Befehl nicht gefunden
Michael

Ah, das brauchst du gitnatürlich. Entschuldigung, das habe ich vergessen. Sie können Git mit dem OS X-Installationsprogramm installieren (wählen Sie oben einfach die neueste Version aus).
Slhck

7

Ich denke, rbenv verdient zumindest eine eigene Antwort.

Es gibt einen ständigen Kampf zwischen Fans von rbenv und denen von RVM, aber ich persönlich mag rbenv viel mehr. Wie der Sam Stephenson (der Autor) feststellt, befasste sich rbenv ausschließlich mit dem Wechsel von Ruby-Versionen (im Gegensatz zu RVM, das viel mehr leistet).

Unter OS X ist es besonders einfach, es auszuprobieren. Befolgen Sie einfach die hervorragenden Installationsanweisungen auf der Github-Seite (wenn Sie Homebrew installiert haben, ist es im Grunde nur eine brew install rbenv ruby-build).

Was das Wechseln der Rails-Versionen betrifft, habe ich einmal einen Artikel darüber geschrieben, was mich für Sie interessieren könnte.


1
Hier finden Sie eine kurze Beschreibung des Autors von rbenv zu den Hauptunterschieden mit RVM und den Gründen für die Wahl von rbenv. Die Einfachheit von rbenv war der Hauptgrund für mich, von RVM wegzuwandern. Das Verwalten von Sätzen anwendungsspezifischer Edelsteine ​​ist IMO besser mit Bundler erledigt - dafür benötigen Sie keinen Ruby-Versionsmanager.
Jochem Schulenklopper

Genau - das Verwalten von Sätzen anwendungsspezifischer Edelsteine ​​ist Bundlers Aufgabe . Ich war noch nie ein Fan von Edelsteinen, die an Versionsmanager gebunden sind.
Michael Trojanek
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.