RVM tidak bekerja di ZSH

96

Saya ingin mencoba shell ZSH di Mac saya, tetapi saya juga melakukan banyak pengembangan Ruby dan Rails, jadi saya juga cukup sering menggunakan RVM. Masalahnya adalah saya tidak bisa membuat RVM berfungsi di ZSH, dan itu berfungsi dengan baik di shell Bash default:

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

Saya pasti dapat memastikan bahwa RVM diinstal, serta ruby ​​1.9.2 di bawah RVM; Saya menggunakannya sepanjang waktu di Bash. Menjalankan rvm listdi ZSH menunjukkan ini, menariknya:

rvm rubies

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

Ini terjadi pada iMac dan MacBook Pro saya. Saya menggunakan OS X 10.6.6 di keduanya, ZSH 4.3.9 di iMac (4.3.10 di laptop). Belum ada yang mewah seperti oh-my-zsh.

Saya mencoba melihat dokumentasi di situs RVM , tetapi tidak ada yang membantu saya di sana.

swilliams
sumber

Jawaban:

275

Apakah Anda memiliki baris ini di ~ / .zshrc Anda ?

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 
intellidiot
sumber
2
Hahaha, benar-benar melupakan hal sederhana itu. Sekarang saya kesal dengan sikap keras kepala saya karena tidak datang ke sini lebih awal. Terima kasih :).
swilliams
6
Sama sama. Kadang-kadang terjadi :) Satu hal berguna yang saya lakukan untuk mempertahankan pengaturan lama saya: "source ~ / .profile" dan "source ~ / .bash_profile" di ~ / .zshrc saya. Itu juga membuat .zshrc saya sedikit lebih bersih.
intellidiot
3
Saya menemukan ketika saya menggunakan oh-my-zsh untuk menyesuaikan zsh itu menambahkan banyak jalur ke .zshrc yang diambil dari shell saya yang ada - ini termasuk jalur yang ditambahkan oleh rvm di bawah bash.
Luke Chadwick
1
Saya menghabiskan waktu lama untuk mencoba mencari tahu juga, karena garis itu [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"ada di .zlogin saya, tapi saya kira itu tidak menggunakannya saat membuka jendela terminal baru di mac saya (10.7.3, oh my zsh). Menambahkannya ke .zshrc juga berhasil untuk saya, tetapi menurut komentar stackoverflow ini , .zshrc adalah tempat yang salah untuk meletakkan ini ??
waffl
5
Selain itu, pastikan path Anda ke $ HOME / .rvm / bin sebelum / usr / bin, jika tidak, Anda mungkin memanggil Ruby executable yang disertakan dengan OS X. Anda dapat memeriksa prioritas dengan mengetik 'where ruby' di ZSH .
Perishable Dave
22

Catatan Maret 2014:

Dengan RVM terbaru, baris berikut:

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

tidak diperlukan lagi, dan seharusnya tidak ada di ~/.zshrc.

Dokumentasi telah diperbarui dalam dokumentasi RVM dengan Zsh :

Pastikan di Preferensi iTerm2: Opsi shell masuk diatur (jangan gunakan opsi Perintah). Ini diperlukan agar RVM dapat bekerja.

Jika Anda masih mendapatkan rvm bukan kesalahan fungsi pada iTerm, coba:

rvm get stable --auto-dotfiles
raviolicode.dll
sumber
Setidaknya pada instalasi Arch Linux saya, xterm tidak menggunakan shell login dan dengan demikian rvm sepertinya tidak diatur dengan benar, bahkan menjalankan perintah itu.
ioquatix
5

Catatan November 2014

Petunjuk instalasi rvm memperingatkan bahwa .zshrc tidak menyertakan $ PATH saat menyetel PATH, sehingga menggantikan konten PATH tanpa memperhatikan apa yang sudah ada di PATH.

Untuk mengatasinya, saya sekarang menambahkan PATH untuk dimiliki .rvm/bindan kemudian menambahkan $PATH di awal pengaturan PATHpada baris kedua:

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

Saya memiliki masalah yang sama, saya menyelesaikannya menggunakan ini setelah instalasi "ruby on rails":

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

dan

source ~/.zshrc
Isa Souza
sumber
0

Saya menggunakan zsh, dan memiliki [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm" di file .zshrc saya, tetapi mendapatkan error parse: 404.

Ketika saya memindahkan baris itu ke file .profile, kesalahan berhenti. Tampaknya itu bertentangan dengan sesuatu di file .zshrc saya, dan mungkin menjalankannya di .profile menghindari ketidakcocokan file .zshrc. Saya belum bisa

Tim
sumber