RVM ne fonctionne pas dans ZSH

96

J'aimerais essayer le shell ZSH sur mon Mac, mais je fais aussi beaucoup de développement Ruby et Rails, donc j'utilise aussi un peu RVM. Le problème est que je n'arrive pas à faire fonctionner RVM dans ZSH, et cela fonctionne bien dans le shell Bash par défaut:

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

Je peux certainement confirmer que RVM est installé, ainsi que ruby ​​1.9.2 sous RVM; Je l'utilise tout le temps dans Bash. L'exécution d'un rvm listdans ZSH montre ceci de manière intéressante:

rvm rubies

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

Cela se produit à la fois sur mon iMac et mon MacBook Pro. J'utilise OS X 10.6.6 sur les deux, ZSH 4.3.9 sur l'iMac (4.3.10 sur l'ordinateur portable). Rien d'extraordinaire comme oh-my-zsh pour l'instant.

J'ai essayé de consulter la documentation sur le site Web de RVM , mais rien ne m'a aidé.

swilliams
la source

Réponses:

275

Avez-vous cette ligne dans votre ~ / .zshrc ?

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 
intellidiot
la source
2
Hahaha, j'ai totalement oublié cette chose simple. Maintenant, je suis ennuyé par mon entêtement de ne pas venir ici plus tôt. Je vous remercie :).
swilliams
6
Je vous en prie. Cela arrive parfois :) Une chose utile que j'ai faite pour conserver mes anciens paramètres: "source ~ / .profile" et "source ~ / .bash_profile" dans mon ~ / .zshrc. Cela garde également mon .zshrc un peu plus propre.
intellidiot
3
J'ai découvert que lorsque j'ai utilisé oh-my-zsh pour personnaliser zsh, il a ajouté un tas de chemins à .zshrc qu'il a pris de mon shell existant - cela incluait des chemins ajoutés par rvm sous bash.
Luke Chadwick
1
J'ai passé des années à essayer de comprendre cela aussi, car la ligne [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"est dans mon .zlogin, mais je suppose qu'il ne l'utilisait pas lors de l'ouverture de nouvelles fenêtres de terminal sur mon mac (10.7.3, oh mon zsh). L'ajouter au .zshrc a également fonctionné pour moi, mais selon ce commentaire de stackoverflow , .zshrc n'est pas le bon endroit pour mettre cela ??
gaufre le
5
Assurez-vous également que votre chemin vers $ HOME / .rvm / bin est avant / usr / bin, sinon vous pourriez appeler l'exécutable Ruby fourni avec OS X. Vous pouvez vérifier la priorité en tapant «where ruby» dans ZSH .
Dave périssable
22

Remarque mars 2014:

Avec le dernier RVM, la ligne suivante:

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

n'est plus nécessaire et il ne devrait plus être dans votre ~/.zshrc.

La documentation a été mise à jour dans la documentation RVM avec Zsh :

Assurez-vous que dans les Préférences iTerm2: l' option Shell de connexion est définie (n'utilisez pas l'option Commande). Ceci est nécessaire pour que RVM fonctionne.

Si vous obtenez toujours rvm n'est pas une erreur de fonction sur iTerm, essayez:

rvm get stable --auto-dotfiles
raviolicode
la source
Au moins sur mon installation d'Arch Linux, le xterm n'utilise pas de shell de connexion et donc rvm ne semble pas être configuré correctement, même en exécutant cette commande.
ioquatix
5

Note novembre 2014

Les instructions d'installation rvm avertissent que .zshrc n'inclut pas $ PATH lors de la définition de PATH, remplaçant ainsi le contenu de PATH sans tenir compte de ce qui existe déjà dans PATH.

Pour remédier à cela, j'ajoute maintenant PATH pour avoir .rvm/bin, puis je préfère $PATH au début du réglage PATHsur la deuxième ligne:

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
la source
1

J'ai eu le même problème, j'ai résolu en utilisant ceci après l'installation de "ruby on rails":

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

et

source ~/.zshrc
Isa Souza
la source
0

J'utilise zsh et j'ai [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm" dans mon fichier .zshrc, mais obtenait une erreur d'analyse: 404.

Lorsque j'ai déplacé cette ligne vers le fichier .profile, l'erreur s'est arrêtée. Il semble qu'il était en conflit avec quelque chose dans mon fichier .zshrc, et peut-être l'exécuter dans .profile a évité l'incompatibilité du fichier .zshrc. Je n'ai pas pu

Tim
la source