RVM ist keine Funktion, die Auswahl von Rubinen mit 'rvm use…' funktioniert nicht

160

Listen Sie die Ruby-Versionen auf

console:~$ rvm list

rvm rubies

ruby-2.0.0-p481 [ i686 ]

# => - current
# =* - current && default
#  * - default

Versuchen Sie, eine bestimmte Version von Ruby zu verwenden

console:~$ rvm use 2.0.0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.
user3678471
quelle
1
Was versuchst du zu machen?
Pavan
Welches Terminal verwenden Sie? Das Einstellen der Login-Shell unterscheidet sich je nach Terminalanwendung. Alternativ könnten Sie source $HOME/.profileoder source $HOME/.bash_profilewo rvm wahrscheinlich seine Init-Zeile definiert hat.
Michael Berkowski
Sie müssen Ihre Konsole als Anmeldeshell ausführen. Welches System hast du?
BroiSatse
Terminal Gnome das Ubuntu 12.04 lts
user3678471
4
Falls Sie sich fragen, was der Unterschied zwischen einer Login- und
stephenbez

Antworten:

236

Ihre Konsole wird nicht als Login-Shell ausgeführt und hat daher keinen Zugriff auf die RVM-Funktion. Wenn Sie Ubuntu ausführen, können Sie:

  1. Konsole öffnen
  2. Wählen Sie Bearbeiten -> Profileinstellungen
  3. Registerkarte auswählen: Titel und Befehl
  4. Kontrollkästchen 'Befehl als Login-Shell ausführen'
  5. Terminal neu starten
BroiSatse
quelle
1
Ich habe das gemacht, aber nicht funktioniert. Das Problem besteht weiterhin . Wie entferne ich rvm vollständig?
user3678471
16
Natürlich benötigen Sie Folgendes in Ihrem ~ / .profile [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm"
nadersoliman
3
Ich denke, dies könnte mehr erklärt werden - "und haben daher keinen Zugriff auf die RVM-Funktion"
Matanster
1
Es funktionierte. Kannst du den Unterschied zwischen diesen beiden erkennen?
Krishnadas PC
6
Was für mich unter OSX funktioniert, ist/bin/bash --login; source ~/.rvm/scripts/rvm; rvm use 2.4.0
Jayesh
116

Geben Sie bash --loginvon Ihrem Terminal aus ein. Und dann gibrvm use 2.0.0

neugierig
quelle
@AdityaPednekar Manchmal hilft es also, die Fehler- / Konsolenmeldung zu lesen, und RVM is not a function, selecting rubies with 'rvm use ...' will not work. You need to change your terminal emulator preferences to allow login shell. Sometimes it is required to use /bin/bash --login as the command. Please visit https://rvm.io/integration/gnome-terminal/ for a example.gibt die Details an.
neugierig
Ja, es hilft zu erkennen, wie unangemessen komplex die Verwendung im rvmVergleich zunvm
Jannis Ioannou
53

Es scheint, als würde Ihr RVM ".bash_profile" nicht richtig laden. Ich habe es in MAC OS X oder Ubuntu 14.04 behoben, indem ich das Terminal geöffnet und geschrieben habe:

source ~/.rvm/scripts/rvm
Akbarbin
quelle
41

Meine Umgebung ist OSX Yosemite. Hatte das gleiche Problem .... gelöst durch Hinzufügen der folgenden

1) Bearbeiten Sie die folgende Zeile und fügen Sie sie der Datei .bash_profile hinzu .

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

2) Starten Sie das Terminal neu und wiederholen Sie den RVM-Befehl

John Varghese
quelle
2
Sie können dies auch zu ~ / .bashrc oder ~ / .zshrc hinzufügen (wenn Sie zsh verwenden).
Adridev
Wenn Sie das Terminal nicht neu starten möchten oder können, können Sie es source ~/.bash_profilenach der Bearbeitung ausführen .
Andre Ravazzi
35

Wenn Sie dies nicht jedes Mal möchten, wenn Sie ein Terminal öffnen, führen Sie den obigen Vorschlag erneut aus. Fügen Sie einfach hinzu

source ~/.rvm/scripts/rvm

am Ende von ~/.bashrc

hhzhu
quelle
Dieser hat geholfen.
Arup Rakshit
.. und braucht einen Neustart?
Gordon
16

Der Fehler ist darauf zurückzuführen, dass rvm nicht wie in der Anmeldeshell ausgeführt wird. Versuchen Sie daher den folgenden Befehl:

/bin/bash --login

Sie können rvm-Befehle sofort als Login-Shell im Terminal ausführen.

Vielen Dank!

Sumit Munot
quelle
15

Gleiches Prinzip wie bei anderen Antworten, dachte nur, es sei schneller als das Wiedereröffnen von Terminals :)

bash -l -c "rvm use 2.0.0"
Vigintas Labakojis
quelle
Jemand sollte eine bessere Antwort finden als alle diese. Dies ist der einzige Punkt in allen Antworten auf diese Frage, der für mich funktioniert, aber das ist nicht etwas, was ich ständig tun möchte.
Ich bin
9

Sie müssen hinzufügen source ~/.rvm/scripts/rvmzu ~/.your_shellrc file. Ab jetzt wird beim Laden einer Shell rvm geladen.

Beispielsweise:

Wenn Sie die zsh-Shell verwenden, müssen Sie eine ~/.zshrcDatei hinzufügen

Wenn Sie eine Bash-Shell verwenden, müssen Sie diese hinzufügen ~/.bashrc Datei

Öffnen Sie dann eine neue Registerkarte, um den Effekt zu sehen.

Siva Praveen
quelle
7

Für mich in Ubuntu (18.08) habe ich die folgende Zeile in .bashrc hinzugefügt und es funktioniert.

 source /home/username/.rvm/scripts/rvm

Bitte fügen Sie diese Zeile hinzu.

Arjun
quelle
1
Vielen Dank! Das hat bei mir unter MacOS funktioniert! Als Vorschlag denke ich, dass es besser ist, ~auf den Home-Pfad des Benutzers zu verweisen: source ~/.rvm/scripts/rvm:-)
Giovanni Benussi
2

Von einer neuen Ubuntu 16.04 Installation

1) Terminal => Bearbeiten => Profileinstellungen

2) Registerkarte "Befehl" => Befehl "Ausführen" als Anmeldeshell aktivieren

3) Schließen Sie das Terminal und öffnen Sie es erneut

rvm --default use 2.2.4
WiredIn
quelle
0

FWIW: Ich bin auch nur darauf gestoßen, es war im Zusammenhang mit einem abgebrochenen Selenlauf. Vielleicht wurde eine Unterschale instanziiert und an Ort und Stelle belassen. Ich musste nur das Terminalfenster schließen und ein neues öffnen. (macOS Sierra)

user8099101
quelle