448 Stimmen

rbenv ändert nicht die Ruby-Version

Ich installierte rbenv gemäß der Github-Anleitung. Ich bin OSX ausgeführt, aber ich habe versucht, diese auf einem Ubuntu 12.04 VM und erhielt die gleichen Ergebnisse. Das Folgende ist, was ich in meinem Terminal erhalte, wenn ich versuche, Ruby-Versionen zu ändern:

rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125

rbenv global
1.9.3-p0

rbenv rehash

ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]

which ruby
/usr/bin/ruby

Hat irgendjemand eine Idee, warum rbenv die Ruby-Version nicht umschaltet, wie es glaubt, dass es ist? Es gibt auch keine .rbenv-Datei im lokalen Verzeichnis, die dazu führen würde, dass die Ruby-Version standardmäßig auf 1.8.7 gesetzt wird.

rbenv local
rbenv: no local version configured for this directory

46voto

Peter Piper Punkte 3495

In meinem Fall wurde die ~/.zshenv hat nicht funktioniert. Ich musste die Änderungen intern vornehmen ~/.zshrc .

Ich habe gerade hinzugefügt:

# Include rbenv for ZSH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

an der Spitze von ~/.zshrc , startete die Shell neu und meldete sich ab.

Prüfen Sie, ob es funktioniert hat:

  ~ rbenv install 2.4.0
  ~ rbenv global 2.4.0
  ~ rbenv global
2.4.0
  ~ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]

32voto

Singhak Punkte 7814

Führen Sie diesen Befehl aus

Fügen Sie rbenv zur Bash hinzu, damit es jedes Mal geladen wird, wenn Sie ein Terminal öffnen

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile

dies wird Ihr Problem lösen Referenz

31voto

Neal Punkte 4278

Ich habe gerade das gleiche Problem gefunden. Ich habe rbenv (über Homebrew) deinstalliert und neu installiert. Ich habe auch hinzugefügt

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

in ~/.bash_profile, als ich rbenv neu installierte. Funktioniert jetzt perfekt.

10voto

drjorgepolanco Punkte 5859

Wenn Sie Folgendes verwenden bash , gehen Sie zu

~/.bash_profile

und fügen Sie die folgende Zeile ein (falls sie nicht bereits vorhanden ist)

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

Wenn Sie Zsh verwenden, gehen Sie zu

~/.zshrc

und fügen Sie die gleiche Codezeile am Ende der .zshrc-Datei ein.

Starten Sie dann einfach Ihr Terminal neu, und es sollte jetzt alles funktionieren.

8voto

djb Punkte 5029

Ich hatte das gleiche Problem, aber verursacht durch Homebrew:

[~]$ rbenv version
2.3.0 (set by /Users/user/.rbenv/version)
[~]$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
[~]$ which ruby
/usr/local/bin/ruby

Irgendwie hatte ich Ruby auch über Homebrew installiert, und der Homebrew-Pfad lag vor dem rbenv-Pfad in meinem $PATH . Laufen brew uninstall ruby hat es für mich erledigt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X