RVM não está funcionando em ZSH

96

Gostaria de experimentar o shell ZSH no meu Mac, mas também faço muito desenvolvimento em Ruby e Rails, então uso bastante RVM também. O problema é que não consigo fazer o RVM funcionar no ZSH e está funcionando bem no shell Bash padrão:

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

Posso definitivamente confirmar que o RVM está instalado, assim como o ruby ​​1.9.2 no RVM; Eu uso isso o tempo todo no Bash. A execução de um rvm listno ZSH mostra isso, de maneira interessante:

rvm rubies

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

Isso está acontecendo no meu iMac e no MacBook Pro. Estou usando o OS X 10.6.6 em ambos, ZSH 4.3.9 no iMac (4.3.10 no laptop). Nada extravagante como oh-meu-zsh ainda.

Tentei olhar a documentação no site da RVM , mas nada me ajudou aí.

Swilliams
fonte

Respostas:

275

Você tem essa linha em ~ / .zshrc ?

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 
intelidiota
fonte
2
Hahaha, esqueci totalmente dessa coisa simples. Agora estou chateado com a minha teimosia por não vir aqui antes. Obrigado :).
swilliams
6
Você é bem vindo. Isso acontece algum dia :) Uma coisa útil que fiz para manter minhas configurações antigas: "source ~ / .profile" e "source ~ / .bash_profile" em meu ~ / .zshrc. Ele também mantém meu .zshrc um pouco mais limpo.
intellidiot
3
Quando usei oh-my-zsh para personalizar zsh, descobri que ele adicionou vários caminhos para .zshrc que tirou do meu shell existente - incluindo caminhos adicionados por rvm em bash.
Luke Chadwick
1
Passei muito tempo tentando descobrir isso também, já que a linha [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"está no meu .zlogin, mas suponho que não a estava usando ao abrir novas janelas de terminal no meu mac (10.7.3, ai meu zsh). Adicioná-lo ao .zshrc funcionou para mim também, mas de acordo com este comentário stackoverflow , .zshrc é o lugar errado para colocar isso ??
waffl de
5
Além disso, certifique-se de que seu caminho para $ HOME / .rvm / bin seja anterior a / usr / bin, caso contrário, você pode chamar o executável Ruby que vem com o OS X. Você pode verificar a precedência digitando 'where ruby' em ZSH .
Perecíveis Dave
22

Nota de março de 2014:

Com o RVM mais recente, a seguinte linha:

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

não é mais necessário e não deveria estar em seu ~/.zshrc.

A documentação foi atualizada na documentação RVM com Zsh :

Certifique-se de que em Preferências do iTerm2: a opção de shell de login está definida (não use a opção de comando). Isso é necessário para que o RVM funcione.

Se você ainda está recebendo o rvm não é um erro de função no iTerm, tente:

rvm get stable --auto-dotfiles
Raviolicode
fonte
Pelo menos na minha instalação do Arch Linux, o xterm não usa um shell de login e, portanto, o rvm não parece estar configurado corretamente, mesmo executando esse comando.
ioquatix de
5

Nota novembro 2014

As instruções de instalação do rvm avisam que .zshrc não inclui $ PATH ao definir PATH, substituindo assim o conteúdo de PATH sem levar em conta o que já existe em PATH.

Para remediar isso, agora acrescento PATH para ter .rvm/bine, em seguida, prefixo $PATH no início da configuração PATHna segunda linha:

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

Eu tive o mesmo problema, resolvi usando isso após a instalação do "ruby on rails":

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

e

source ~/.zshrc
Isa souza
fonte
0

Eu uso zsh e tinha [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm" em meu arquivo .zshrc, mas estava recebendo um erro de análise: 404.

Quando movi essa linha para o arquivo .profile, o erro parou. Parece que estava em conflito com algo em meu arquivo .zshrc e talvez executá-lo em .profile evitou a incompatibilidade do arquivo .zshrc. Eu não fui capaz

Tim
fonte