Wie ändere ich meine Ruby-Version mit RVM?

111

Ich kann die aktuelle Ruby-Version nicht wechseln:

  ~  rvm list

rvm rubies

   ruby-1.9.2-p290 [ x86_64 ]
   ruby-1.9.3-p0 [ x86_64 ]

  ~  rvm use ruby-1.9.3-p0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.
Donald
quelle
Bist du sicher, dass du rvm richtig installiert hast? Welches Betriebssystem verwenden Sie?
Lesce
2
Hängen Sie die Ausgabe rvm infobitte an Ihre Frage an.
der Blechmann
Ich hatte ein ähnliches Problem bei der Installation von rvm mit apt-get unter Ubuntu 11.10. Ich musste es entfernen und mit$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
lesce
4
Haben Sie die RVM-Ladefunktion im Startskript Ihrer Shell? [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"ist der zu verwendende Code. Wenn Sie RVM in Ihrem Pfad installiert haben, dies aber nicht in Ihrem Startskript haben, können Sie den RVM is not a functionFehler erhalten.
Michelle Tilley
Diese Lösung funktioniert für mich - rvm.io/integration/gnome-terminal
gotqn

Antworten:

122

Behoben. Ich musste hinzufügen:

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

zu .zshrc

Donald
quelle
57

Das ist mir auch passiert. Ich hatte:

export PATH=~/.rvm/bin:$PATH

Hinzugefügt in meiner .bashrc.

Ich musste nur noch einen hinzufügen

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

auf die gleiche Datei und es hat funktioniert! Natürlich müssen Sie Ihr Terminal danach neu starten.

Der Mitra-Junge
quelle
1
Ich hatte dieselbe Zeile (das [[-s "$ HOME / ...) in meinem ~ / .bash_profile und das schien nicht" zu dauern ", als ich ein neues Terminal öffnete ... aber als ich die Zeile hinzufügte Unterhalb der PATH-Zeile in ~ / .bashrc hat es funktioniert - das heißt, ich könnte rvm use 1.9.3 eingeben und es würde rvm sofort als Befehl erkennen, ohne dass ich zuerst source ~ / .bash_profile - i 'eingeben muss. Ich bin keine Linux-Person, also verwirrt mich das, aber ich bin froh, dass es funktioniert hat. Vielleicht kann jemand meine Verwirrung klären.
TimDog
Das ist großartig, ich habe diese Zeile einfach in ~ / .bashrc eingefügt, es funktioniert. aber ich weiß auch nicht warum.
Jack Ma
Ja, es funktioniert. Aber jedes Mal, wenn ich meinen Computer neu starte, muss ich die oben genannten Befehle geben. Wenn ich die Befehle nicht gebe, heißt es, dass rvm keine Funktion ist.
Apurva Mayank
11

Ihre Shell kennt die RVM-Funktion nicht. Nach der Installation erfahren Sie, wie Sie dies erledigen können. Oder gehen Sie zur Installationsseite auf der RVM-Site und lesen Sie den Abschnitt "2. Laden Sie RVM als Funktion in Ihre Shell-Sitzungen".

Führen Sie dies einmal aus, um die Zeile, die rvm lädt, in Ihr ~ / .bash_profile einzufügen:

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

oder manuell selbst hinzufügen. (Beachten Sie, dass Sie es auf einigen Systemen an anderen Stellen ablegen möchten, z. B. auf meinem System, Mac OSX Lion. Ich habe es in ~ / .profile abgelegt.)

Joshua Cheek
quelle
Ich verwende OS X Snow Leopard. Das Einfügen dieser Zeile in mein .profile hat den Trick für mich getan.
Heldraug
9

(Kubuntu 11.10) Das ~/.bash_profileheißt jetzt~/.profile

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.profile
source ~/.profile
rvm info # And now the fields display
Lindsay
quelle
6

So ändern Sie die Standardversion von Ruby:

In Ubuntu 11.10
ändern Sie bitte Ihre GNOME-Terminaleinstellung:

Gehen Sie zum Terminal und befolgen Sie die folgenden Anweisungen:

1.  Edit > Profile Preferences
2.  Open Title and Command Tab               
3.  Check Run Command as a login Shell 
4.  Restart terminal

Führen Sie diesen Befehl auf dem Terminal aus:

rvm --default use ruby_Version
Mayank Raipure
quelle
5

Um Ihrem .bash_profile alle RVM-Funktionen hinzuzufügen, sollten Sie den folgenden Befehl verwenden:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

Danach sollten Sie die aktuelle Shell neu laden oder eine neue Terminalsitzung öffnen und den folgenden Befehl eingeben, um .bash_profile neu zu laden:

source .bash_profile
Недоброе Привидение
quelle
4

Die obige Lösung funktioniert nur, wenn RVM für den aktuellen Benutzer installiert ist. Eine allgemeinere Lösung würde die RVM-Pfadvariable verwenden:

# The following code loads RVM as user or system install:
[[ -s "$rvm_path/scripts/rvm" ]] && . "$rvm_path/scripts/rvm"
user2408574
quelle
rvm_path=/home/myuser/.rvm . /home/myuser/.rvm/scripts/rvm
Jose Alban
3

Ich musste nur die Quelle aufrufen ~/.bash_profile

Behzad
quelle
3

Bei einer Neuinstallation von Ubuntu 12.04 stieß ich auf dasselbe Problem. Das RVM-Installationsprogramm erstellt oder hängt an eine Datei mit dem Namen ~ / .bash_login das erforderliche Codebit an, um das ursprüngliche Problem zu vermeiden:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

Dies scheint jedoch nicht aufgerufen zu werden. Durch Hinzufügen zu ~ / .bashrc wurde das Problem für mich behoben.

Gordonbanderson
quelle
1

Installation von RVM finden Sie hier http://octopress.org/docs/setup/rvm/

hahakubile
quelle
Verwenden Sie keine nicht autorisierenden Quellen für die Installation von RVM. Auf der RVM-Installationsseite heißt es ausdrücklich: "Beachten Sie, dass externe Tutorials NICHT unterstützt werden, unabhängig davon, ob sie funktionieren oder nicht. Die Tutorials sind großartig, wir haben jedoch eine Menge Mannstunden damit verbracht, den Installationsprozess zu debuggen. Verwenden Sie die Installationsprozesse von Nur diese Site, da dies die einzigen unterstützten Installationstypen und -methoden sind. "
der Blechmann
1

In meinem Fall unter Ubuntu hatte der Eintrag in ~ / .bashrc:

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && ."$HOME/.rvm/scripts/rvm" # BAD

anstatt:

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # WORKING

Beachten Sie den fehlenden Abstand dazwischen. und "$ HOME.

Wenn dies das Problem ist, sollten Sie beim Starten Ihres Terminals auch oben einen Fehler bemerken.

mohitj2007
quelle
0

Ich hatte eine globale Installation von RVM, auf der /etc/profile.d/rvm.sh ausgeführt wird. Für dieses Skript muss jedoch BASH_VERSION oder ZSH_VERSION festgelegt werden. Ich rannte von Crontab, das "sh" verwendet.

Ich habe ein Wrapper-Skript erstellt, das / bin / bash als Quelle für /etc/profile.d/rvm.sh verwendet.

dfrankow
quelle
0

Sie müssen die Einstellungen Ihres Terminalemulators ändern, um die Anmeldeshell zuzulassen. Manchmal ist es erforderlich, /bin/bash --loginals Befehl zu verwenden.

Moamen Abdelwahed
quelle