2010-07-18 16 views
19

Ich rufe Ruby 1.9.1p243 auf CentOS, und ich entschied mich, rvm zu installieren, um das Upgrade auf 1.9.2 oder Downgrade auf 1.8.7 (was sich als besser für rails3 funktioniert).RVM schaltet Rubies nicht

Ich folgte den Anweisungen hier: http://rvm.beginrescueend.com/rvm/install/ und alles richtig installiert. Ich konnte Ruby 1.8.7, 1.9.1 und 1.9.2 kompilieren und installieren.

Allerdings, wenn ich versuche, tatsächlich zu einem der rvm installierten Rubies, mit rvm verwenden 1.8.7, zum Beispiel, nichts funktioniert. Mein System verwendet immer noch den Ruby, den ich in/usr/local/bin/ruby ​​installiert habe.

Ein Beispiel für die Ausgabe erhalte ich:

$ rvm use 1.8.7 
$ ruby -v 
ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux] 
$ which ruby 
/usr/local/bin/ruby 
$ rvm use 1.9.2 
$ ruby -v 
ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux] 
$ which ruby 
/usr/local/bin/ruby 

Ich habe keine Ahnung, warum dies geschieht, und ich kann nicht alles online über das Thema scheinen entweder zu finden. Jede Hilfe wäre willkommen.

+1

Haben Sie das Skript tatsächlich in Ihrer .bashrc eingerichtet? Das könnte sein, was du verpasst hast. –

+0

Wenn Sie meinen, habe ich [[-s "$ HOME/.rvm/scripts/rvm"]] && Quelle "$ HOME/.rvm/scripts/rvm" zu meinem .bashrc hinzugefügt, dann ja, tat ich. Und nichts wird in meiner .bashrc zurückgegeben, wie die Installationshinweise warnen. –

Antwort

16

Normalerweise ist Rvm-Unterstützung am einfachsten über IRC (#rvm auf Freenode) - in diesem speziellen Fall, was läuft "Typ Rvm | Head -n1" anzeigen? Es sollte "rvm ist eine Funktion" angezeigt werden. Wenn nicht, bedeutet dies, dass die Zeile zu Quelle rvm nicht korrekt ausgeführt wird und daher die Umschaltung nicht funktioniert. In der Regel bedeutet dies, dass Sie entweder eine Rückgabe in Ihrer ~/.bashrc haben oder die Zeile zur Quell-Rvm hinzugefügt haben.

+2

Dieser Befehl spuckt "rvm is/usr/local/bin/rvm" aus und nicht "rvm ist eine Funktion". Meine .bashrc-Datei scheint jedoch gemäß dem Installationshandbuch ordnungsgemäß eingerichtet zu sein. Ich werde den IRC-Kanal überprüfen, danke. –

+1

Es war ein Problem mit meinem .bashrc; Da ich root war, wurde es an einem anderen Ort installiert, als die Anweisungen sagten, und ich musste die Quellzeile ändern, um das zu berücksichtigen. –

+0

Können Sie uns mitteilen, was Sie in Ihrer bashrc-Datei geändert haben? – Lichtamberg

12

Ihre Installation ist als root-Konto. Versuchen Sie dies in der Shell [[-s "/ usr/local/rvm/scripts/rvm"]] & &. "/ usr/local/rvm/scripts/rvm"

vor dem rvm-Switch-Betrieb. Ich füge diese Zeile in meine Profildatei und jetzt ist alles in Ordnung.

25

Gerade ist das gleiche Problem aufgetreten.

Statt anhängt das folgende Skript zu ~/.bash_profile, hängen Sie ihn an ~/.bashrc:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.

Und dann das Terminal neu zu starten.

+0

Putting in ~ /. Bashrc, und das erneute Laden einer Shell löste auch das Problem für mich. – Grantismo

+1

@Shuo können Sie diesen Link aktualisieren oder entfernen Sie den Beitrag, es geht auf eine deutsche Website über b12 ... Nicht sicher, das ist, was Sie beabsichtigt haben. – djowinz

0

Kann ein Problem von Terminal und sein, sollten Sie versuchen, das Terminalfenster zu schließen und ein neues zu öffnen. :) Versuchen Sie es erneut, um zu sehen, ob sie sich geändert hat ...

0

Ich habe ohne Erfolg mit der Einstellung Standard rvm Rubin zu kämpfen, bis ich dieses versucht habe:

sudo bash -l -c 'rvm alias create default ruby-1.9.3-p392' 

"sudo "ist für das Schreiben in /usr/local/RVM/config/alias (in meinem Beispiel wäre es enthalten "default = ruby-1.9.3-P392")
" bash -l "ist es, um sicherzustellen, Läuft alle Skripte (/ etc/profile, /etc/bash.bashrc, etc ..) der Login-Shell