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

5voto

Daniel Viglione Punkte 6606

Die akzeptierte Antwort schlägt vor, das Folgende hinzuzufügen:

export PATH="$HOME/.rbenv/bin:$PATH"

Dies funktioniert nicht unter Mac OSX, auf das sich der OP bezieht. In der Tat, wenn Sie rbenv installieren über brew install rbenv was unter Mac OSX wirklich die einzige Installationsmethode ist, da curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash unter OSX fehlschlägt, dann wird die ausführbare Datei rbenv in installiert:

$ which rbenv
/usr/local/bin/rbenv

Aber auch unter OSX verbleibt rbenv Root im Verzeichnis $HOME:

~ viggy$ rbenv root
/Users/viggy/.rbenv

Was bedeutet das? Es bedeutet, wenn Sie Rubies installieren, werden sie in das angegebene Home-Verzeichnis unter .rbenv installiert:

$ rbenv install 2.6.0
$ ls ~/.rbenv/versions
2.6.0

Nun hat die Brew-Installation einige Arbeiten erledigt, die Sie unter Linux manuell durchführen müssten. Zum Beispiel müssen Sie unter Linux ruby-build manuell als Plugin installieren:

$ mkdir -p "$(rvbenv root)/plugins"
$ git clone https://github.com/rbenv/ruby-build.git "(rbenv root)"/plugins/ruby-build

Dies ist bereits mit der Homebrew-Installation geschehen. Es gibt einen wichtigen Schritt, der bei der Homebrew-Installation, wie bei der Linux-Installation, durchgeführt werden muss. Sie müssen die rbenv-Shims zu Ihrem Pfad hinzufügen. Dazu müssen Sie beim Starten Ihrer Shell den folgenden Befehl auswerten (der wiederum die rbenv-Shims an den Anfang Ihres $PATH hinzufügt):

$ vim ~/.bash_profile
eval "$(rbenv init -)"
$ source ~/.bash_profile

Wenn Sie nun echo $PATH sehen Sie die rbenv-Unterlegscheiben:

$ echo $PATH
/Users/viggy/.rbenv/shims:

Prüfen Sie nun Ihre Ruby-Version und sie wird die installierte rbenv-Ruby-Version anzeigen:

ruby -v
ruby 2.6.0p0

5voto

Rootical V. Punkte 809

Für mich ist es am einfachsten, wenn ich rbenv zusammen mit zsh fügt hinzu rbenv zum Abschnitt Plugins in .zshrc Konfiguration. In meinem Fall sieht sie ähnlich aus:

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git bower rails ruby rbenv gulp npm node nvm sublime)

Danach gibt es keine Probleme mehr beim Installieren, Wechseln und Verwenden von Ruby-Versionen mit Hilfe von rbenv .

Denken Sie daran, Ihre Terminalsitzung nach den Änderungen neu zu starten.

3voto

elimcjah Punkte 111

Stellen Sie sicher, dass die letzte Zeile Ihrer .bash_profile ist:

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

3voto

David Punkte 471

Als ich diese Symptome hatte, stellte sich heraus, dass die Installation der neuen Ruby-Version, zu der ich wechseln wollte, auf halbem Weg fehlgeschlagen war, ohne dass ich es bemerkt hatte. Die Lösung bestand darin, sie zu löschen und neu zu installieren.

(Das bedeutete, dass, obwohl ruby 1.9.3 in der rbenv-Liste der verfügbaren Versionen auftauchte, es keine ausführbare Datei in dem Pfad gab, in dem rbenv sie vermutete. Da rbenv versucht, die Ruby-Version zu ändern, indem es dem Pfad einen Speicherort voranstellt, wird Ihr Betriebssystem, wenn sich an diesem Ort nichts befindet, fröhlich weiter den Standardpfad durchsuchen und Ihre Systemversion finden, in meinem Fall 1.8.7).

3voto

Vincent Punkte 423

Ich bin zu demselben Problem gekommen. Ich habe das Problem behoben, indem ich die rbenv global Befehl mit sudo . Ich denke, es war etwas Erlaubnis Problem.

aktualisieren: Ich habe endlich die Lösung gefunden. Es gab eine gleiche Datei "Version" auf meinem Mac, die sich unter /usr/local/Cellar/rbenv/0.3.0/ . Ich denke, es wurde gelegentlich aus Versehen erstellt. Sie sollten es entfernen.

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