RVM non funziona in ZSH


96

Mi piacerebbe provare la shell ZSH sul mio Mac, ma faccio anche molto sviluppo di Ruby e Rails, quindi uso anche RVM. Il problema è che non riesco a far funzionare RVM in ZSH e funziona bene nella shell Bash predefinita:

> 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 sicuramente confermare che RVM è installato, così come ruby ​​1.9.2 sotto RVM; Lo uso sempre in Bash. L'esecuzione di un rvm listin ZSH mostra questo, in modo interessante:

rvm rubies

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

Questo sta accadendo sia sul mio iMac che sul MacBook Pro. Sto usando OS X 10.6.6 su entrambi, ZSH 4.3.9 su iMac (4.3.10 sul laptop). Ancora niente di speciale come oh-my-zsh.

Ho provato a guardare la documentazione sul sito web di RVM , ma niente mi ha aiutato.

Risposte:


275

Hai questa riga nel tuo ~ / .zshrc ?

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

2
Hahaha, mi sono completamente dimenticato di quella cosa semplice. Ora sono infastidito dalla mia ostinazione per non essere venuto qui prima. Grazie :).
Swilliams

6
Prego. A volte capita :) Una cosa utile che ho fatto per mantenere le mie vecchie impostazioni: "source ~ / .profile" e "source ~ / .bash_profile" nel mio ~ / .zshrc. Mantiene anche il mio .zshrc un po 'più pulito.
intellidiot

3
Ho scoperto che quando ho usato oh-my-zsh per personalizzare zsh ho aggiunto un mucchio di percorsi a .zshrc che prendeva dalla mia shell esistente - questo includeva percorsi aggiunti da rvm sotto bash.
Luke Chadwick

1
Ho passato anni a cercare di capirlo, dato che la linea [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"è nel mio .zlogin, ma suppongo che non lo stia usando quando apro nuove finestre di terminale sul mio Mac (10.7.3, oh mio zsh). L'aggiunta a .zshrc ha funzionato anche per me, ma secondo questo commento di stackoverflow, .zshrc è il posto sbagliato per metterlo ??
waffl

5
Inoltre, assicurati che il tuo percorso a $ HOME / .rvm / bin sia prima di / usr / bin, altrimenti potresti chiamare l'eseguibile Ruby fornito con OS X. Puoi controllare la precedenza digitando 'where ruby' in ZSH .
Deperibile Dave

22

Nota marzo 2014:

Con l'ultimo RVM, la seguente riga:

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

non è più necessario e non dovrebbe essere nel tuo file ~/.zshrc.

La documentazione è stata aggiornata nella documentazione RVM con Zsh :

Assicurati che nelle Preferenze di iTerm2: l' opzione shell di accesso sia impostata (non usare l'opzione Comando). Ciò è necessario affinché RVM funzioni.

Se stai ancora ricevendo rvm non è un errore di funzione su iTerm, prova:

rvm get stable --auto-dotfiles

Almeno sulla mia installazione di Arch Linux, xterm non usa una shell di login e quindi rvm non sembra essere impostato correttamente, anche eseguendo quel comando.
ioquatix

5

Nota novembre 2014

Le istruzioni di installazione di rvm avvertono che .zshrc non include $ PATH quando imposta PATH, sostituendo così il contenuto di PATH senza tenere conto di ciò che già esiste in PATH.

Per rimediare a questo, ora aggiungo PATH da avere .rvm/bine quindi antepongo $PATH all'inizio dell'impostazione PATHsulla seconda riga:

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"

1

Ho avuto lo stesso problema, ho risolto usando questo dopo l'installazione "ruby on rails":

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

e

source ~/.zshrc

0

Uso zsh e avevo [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm" nel mio file .zshrc, ma riceveva un errore di analisi: 404.

Quando ho spostato quella riga nel file .profile, l'errore si è interrotto. Sembra che fosse in conflitto con qualcosa nel mio file .zshrc, e forse eseguirlo in .profile ha evitato l'incompatibilità del file .zshrc. Non sono stato in grado

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.