RVM findet ausführbare Dateien von System-Edelsteinen

8

Ich habe RVM zusammen mit Ruby-Versionen installiert. Wenn ich jedoch die Konsole hochfalle und den Command-Rails-Server, die Bundle-Installation usw. ausführe, bekomme ich diesen Fehler

%Vor%

Aber wenn ich rvm use 1.9.2 zuerst starte, ist alles in Ordnung. Ich habe versucht, 'rvm verwenden - Standard 1.9.2', aber nichts geändert. Bedeutet das, dass es einen anderen Rubin verwendet als die in RVM? Vielen Dank im Voraus!

    
maru 17.06.2011, 01:08
quelle

3 Antworten

17

Erläuterung der rubygems Bin-Ordner und PATH

Oh. Sie hatten keine Rails in Ihrem Rvm Ruby installiert, aber Sie haben in Ihrem System Ruby.

Einzelne Edelsteine, wie rails , können ein bin -Verzeichnis haben, das ausführbare Hilfsskripte enthält. Ihr Systemstandard-Rubygems erstellt Symlinks von Ihrem System / usr / bin / dir in den Ordner bin des Gems für diese ausführbaren Helper.

RVM bietet eine ähnliche Funktion, außer dass das Verzeichnis / usr / bin dir nicht verschmutzt wird, sondern einfach sein ~/.rvm/gems/#{rvm_gemset_string}/bin -Ordner an die PATH-Umgebungsvariable angehängt wird.

Rubygems-System in die Rub-Gem-Verzeichnisse Ihres neuen Rubins importieren

RVM importiert deine Edelsteine ​​standardmäßig nicht von deiner System Ruby Installation in deine rvm ruby ​​Installationen. Es macht eine vollständige saubere Gabel des gesamten Ruby-Systems einschließlich Rubygems (der Edelstein "Rubygems") und Rubygems "Gem Liste. Wenn du rvm install 1.9.2 hast, hast du eine komplett neue Installation von allem, was mit Ruby verwendet wird, gemacht.

Wenn Sie alle Ihre System-Ruby-Edelsteine, die Sie zuvor verwendet haben, in Ihren bevorzugten rvm-Ruby erhalten möchten, versuchen Sie Folgendes:

%Vor%

Ursprüngliche Antwort / Änderungen von @Telemachus

Versuchen Sie, die Zeilen, die rvm liefern, an das Ende Ihrer ~/.bash_profile oder ~/.bashrc zu verschieben (je nachdem, wo Sie sie haben):

%Vor%

.

%Vor%

Sie haben Schienen in /usr/bin installiert, was wahrscheinlich vor dem rvm ruby ​​bin-Pfad in Ihrer bash echo $PATH -Variable liegt. Daher werden die Systemschienen installiert (/ usr / bin / rails, ein Ruby-Skript), die gestartet werden so:

#! /usr/bin/ruby18

Sie müssen dafür sorgen, dass der Konflikt aufhört. Die beste aller Möglichkeiten besteht darin, sicherzustellen, dass RVMs bin dir am Anfang Ihres PATH steht. Dies geschieht im Skript #Load rvm environment , das Sie bei der Installation von rvm zu Ihrem ~/.bash_profile hinzugefügt haben. Wenn Sie rvm als Systembibliothek und nicht nur für Ihren Benutzer installiert haben, ist das anders.

Wenn Sie zu diesem Fall kommen, fragen Sie @Telemachus.

Sie müssen dann sicherstellen, dass Sie das Rails-Juwel wie oben in Ihrem neuen rvm-Ruby installiert haben.

Akzeptanztest:

Sie werden feststellen, dass, wenn Sie rvm use 1.9.2 erledigt haben, which ruby etwas wie ~/.rvm/rubies/1.9.2/bin/ruby zurückgibt, und which rails sollte etwas wie ~/.rvm/gems/*/bin/rails zurückgeben.

    
Tim Snowhite 17.06.2011, 01:48
quelle
4

Ich habe gerade das gleiche Problem auf Windows Vista gelöst.

Meine Konsole gab mir diese Nachricht:

%Vor%

Ich habe gerade die erste Zeile dieser Datei bearbeitet:

%Vor%

Und es hat auf den richtigen Ort für ruby.exe auf meinem System hingewiesen:

%Vor%

Et voilà, Problem gelöst!

    
Darme 08.09.2011 18:49
quelle
0

Sie müssen rvm use --default 1.9.2 ausführen, nicht nur rvm use --default .

    
Dylan Markow 17.06.2011 01:16
quelle