RVM funktioniert nicht in ZSH

96

Ich würde gerne die ZSH-Shell auf meinem Mac ausprobieren, aber ich entwickle auch viel Ruby und Rails, daher benutze ich RVM auch ziemlich oft. Das Problem ist, dass ich RVM anscheinend nicht in ZSH zum Laufen bringen kann und es in der Standard-Bash-Shell einwandfrei funktioniert:

> zsh
> rvm 1.9.2
> ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
> which ruby
/usr/bin/ruby

Ich kann definitiv bestätigen, dass RVM installiert ist, sowie Ruby 1.9.2 unter RVM; Ich benutze es die ganze Zeit in Bash. Das Ausführen eines rvm listin ZSH zeigt dies interessanterweise:

rvm rubies

   ruby-1.8.7-p302 [ x86_64 ]
=> ruby-1.9.2-p0 [ x86_64 ]

Dies geschieht sowohl auf meinem iMac als auch auf meinem MacBook Pro. Ich verwende OS X 10.6.6 auf beiden, ZSH 4.3.9 auf dem iMac (4.3.10 auf dem Laptop). Noch nichts Besonderes wie oh-my-zsh.

Ich habe versucht, die Dokumentation auf der RVM- Website zu lesen , aber dort hat mir nichts geholfen.

Swilliams
quelle

Antworten:

275

Haben Sie diese Zeile in Ihrem ~ / .zshrc ?

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 
Intellidiot
quelle
2
Hahaha, ich habe diese einfache Sache total vergessen. Jetzt ärgere ich mich über meine Sturheit, nicht früher hierher zu kommen. Danke :).
Swilliams
6
Bitte schön. Es passiert irgendwann :) Eine nützliche Sache, die ich getan habe, um meine alten Einstellungen beizubehalten: "source ~ / .profile" und "source ~ / .bash_profile" in meinem ~ / .zshrc. Es hält auch meine .zshrc ein bisschen sauberer.
Intellidiot
3
Als ich oh-my-zsh zum Anpassen von zsh verwendete, stellte ich fest, dass .zshrc eine Reihe von Pfaden hinzugefügt wurde, die von meiner vorhandenen Shell übernommen wurden - dies beinhaltete Pfade, die von rvm unter bash hinzugefügt wurden.
Luke Chadwick
1
Ich [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"habe ewig versucht, dies auch herauszufinden, da sich die Zeile in meinem .zlogin befindet, aber ich nehme an, dass sie beim Öffnen neuer Terminalfenster auf meinem Mac nicht verwendet wurde (10.7.3, oh my zsh). Das Hinzufügen zu .zshrc hat auch bei mir funktioniert, aber laut diesem Stackoverflow-Kommentar ist .zshrc der falsche Ort, um dies zu setzen?
Waffel
5
Stellen Sie außerdem sicher, dass Ihr Pfad zu $ ​​HOME / .rvm / bin vor / usr / bin liegt. Andernfalls rufen Sie möglicherweise die mit OS X gelieferte ausführbare Ruby-Datei auf. Sie können die Priorität überprüfen, indem Sie in ZSH 'where ruby' eingeben .
Verderblicher Dave
22

Anmerkung März 2014:

Mit der neuesten RVM die folgende Zeile:

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

wird nicht mehr benötigt und sollte nicht in deinem sein ~/.zshrc.

Die Dokumentation wurde in der RVM-Dokumentation mit Zsh aktualisiert :

Stellen Sie sicher, dass in den iTerm2-Einstellungen: Anmelde- Shell- Option festgelegt ist (verwenden Sie nicht die Befehlsoption). Dies ist erforderlich, damit RVM funktioniert.

Wenn Sie immer noch rvm erhalten, ist kein Funktionsfehler auf iTerm, versuchen Sie:

rvm get stable --auto-dotfiles
Raviolicode
quelle
Zumindest bei meiner Installation von Arch Linux verwendet xterm keine Login-Shell und daher scheint rvm nicht richtig eingerichtet zu sein, selbst wenn dieser Befehl ausgeführt wird.
Ioquatix
5

Hinweis November 2014

Die rvm-Installationsanweisungen warnen, dass .zshrc beim Festlegen von PATH kein $ PATH enthält, wodurch der Inhalt von PATH ersetzt wird, ohne Rücksicht darauf, was bereits in PATH vorhanden ist.

Um dies zu beheben, füge ich jetzt PATH hinzu .rvm/binund stelle es $PATH am Anfang der Einstellung PATHin der zweiten Zeile voran :

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

export PATH=$PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/local/mysql/bin:/opt/local/bin"
Aaronbartell
quelle
1

Ich hatte das gleiche Problem, das ich nach der Installation von "Ruby on Rails" gelöst habe:

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

und

source ~/.zshrc
Isa Souza
quelle
0

Ich benutze zsh und hatte [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm" in meiner .zshrc-Datei, aber es wurde ein Analysefehler angezeigt: 404.

Als ich diese Zeile in die .profile-Datei verschoben habe, wurde der Fehler gestoppt. Es scheint, dass es einen Konflikt mit etwas in meiner .zshrc-Datei gab, und vielleicht hat das Ausführen in .profile die Inkompatibilität der .zshrc-Datei vermieden. Ich war nicht in der Lage

Tim
quelle