RVM no funciona en ZSH

96

Me gustaría probar el shell ZSH en mi Mac, pero también desarrollo mucho Ruby y Rails, así que también utilizo bastante RVM. El problema es que parece que no puedo hacer que RVM funcione en ZSH, y está funcionando bien en el shell Bash predeterminado:

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

Definitivamente puedo confirmar que RVM está instalado, así como ruby ​​1.9.2 bajo RVM; Lo uso todo el tiempo en Bash. Ejecutar un rvm listen ZSH muestra esto, de manera interesante:

rvm rubies

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

Esto está sucediendo tanto en mi iMac como en mi MacBook Pro. Estoy usando OS X 10.6.6 en ambos, ZSH 4.3.9 en el iMac (4.3.10 en el portátil). Nada lujoso como oh-my-zsh por el momento.

Intenté mirar la documentación en el sitio web de RVM , pero nada me ayudó.

swilliams
fuente

Respuestas:

275

¿Tiene esta línea en su ~ / .zshrc ?

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 
intellidiot
fuente
2
Jajaja, me olvidé por completo de esa simple cosa. Ahora estoy molesto por mi terquedad por no haber venido antes. Gracias :).
swilliams
6
De nada. Ocurre en algún momento :) Una cosa útil que hice para mantener mi configuración anterior: "fuente ~ / .profile" y "fuente ~ / .bash_profile" en mi ~ / .zshrc. También mantiene mi .zshrc un poco más limpio.
intellidiot
3
Descubrí que cuando usé oh-my-zsh para personalizar zsh, agregué un montón de rutas a .zshrc que tomó de mi shell existente, esto incluía rutas agregadas por rvm bajo bash.
Luke Chadwick
1
Pasé años tratando de resolver esto también, ya que la línea [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"está en mi .zlogin, pero supongo que no la estaba usando al abrir nuevas ventanas de terminal en mi mac (10.7.3, oh mi zsh). Agregarlo a .zshrc también funcionó para mí, pero de acuerdo con este comentario de stackoverflow , ¿.zshrc es el lugar incorrecto para poner esto?
waffl
5
Además, asegúrese de que su ruta a $ HOME / .rvm / bin sea anterior a / usr / bin, de lo contrario, podría estar llamando al ejecutable Ruby que viene con OS X. Puede verificar la precedencia escribiendo 'where ruby' en ZSH .
Dave perecedero
22

Nota de marzo de 2014:

Con la última RVM, la siguiente línea:

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

ya no es necesario y no debería estar en tu ~/.zshrc.

La documentación se ha actualizado en la documentación RVM con Zsh :

Asegúrese de que en las preferencias de iTerm2: la opción de shell de inicio de sesión esté configurada (no use la opción de comando). Esto es necesario para que RVM funcione.

Si todavía recibe errores de rvm no es una función en iTerm, intente:

rvm get stable --auto-dotfiles
raviolicode
fuente
Al menos en mi instalación de Arch Linux, xterm no usa un shell de inicio de sesión y, por lo tanto, rvm no parece estar configurado correctamente, incluso ejecutando ese comando.
ioquatix
5

Nota noviembre de 2014

Las instrucciones de instalación de rvm advierten que .zshrc no incluye $ PATH al configurar PATH, reemplazando así el contenido de PATH sin tener en cuenta lo que ya existe en PATH.

Para remediar esto, ahora agrego PATH para tener .rvm/biny luego antepongo $PATH al comienzo de la configuración PATHen la segunda línea:

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
fuente
1

Tuve el mismo problema, lo resolví usando esto después de la instalación de "ruby on rails":

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

y

source ~/.zshrc
Isa Souza
fuente
0

Yo uso zsh y tenía [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm" en mi archivo .zshrc, pero recibía un error de análisis: 404.

Cuando moví esa línea al archivo .profile, el error se detuvo. Parece que estaba en conflicto con algo en mi archivo .zshrc, y quizás ejecutarlo en .profile evitó la incompatibilidad del archivo .zshrc. No he podido

Tim
fuente