RVM không hoạt động trong ZSH


96

Tôi muốn dùng thử ZSH shell trên máy Mac của mình, nhưng tôi cũng phát triển nhiều Ruby và Rails, vì vậy tôi cũng sử dụng RVM một chút. Vấn đề là tôi dường như không thể làm cho RVM hoạt động trong ZSH và nó hoạt động tốt trong Bash shell mặc định:

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

Tôi chắc chắn có thể xác nhận rằng RVM đã được cài đặt, cũng như ruby ​​1.9.2 trong RVM; Tôi sử dụng nó mọi lúc trong Bash. Chạy một rvm listtrong ZSH cho thấy điều này, thật thú vị:

rvm rubies

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

Điều này đang xảy ra trên cả iMac và MacBook Pro của tôi. Tôi đang sử dụng OS X 10.6.6 trên cả hai, ZSH 4.3.9 trên iMac (4.3.10 trên máy tính xách tay). Chưa có gì lạ mắt như oh-my-zsh.

Tôi đã thử xem tài liệu trên trang web của RVM , nhưng không có gì giúp tôi ở đó.

Câu trả lời:


275

Bạn có dòng này trong ~ / .zshrc của bạn không?

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

2
Hahaha, hoàn toàn quên mất điều đơn giản đó. Bây giờ tôi khó chịu vì sự cứng đầu của mình vì đã không đến đây sớm hơn. Cảm ơn bạn :).
swilliams

6
Không có gì. Đôi khi nó xảy ra :) Một điều hữu ích mà tôi đã làm để giữ cài đặt cũ của mình: "source ~ / .profile" và "source ~ / .bash_profile" trong ~ / .zshrc của tôi. Nó cũng giữ cho .zshrc của tôi sạch hơn một chút.
intellidiot

3
Tôi thấy khi tôi sử dụng oh-my-zsh để tùy chỉnh zsh, nó đã thêm một loạt các đường dẫn tới .zshrc mà nó lấy từ trình bao hiện có của tôi - điều này bao gồm các đường dẫn được thêm bởi rvm dưới bash.
Luke Chadwick

1
Tôi cũng đã dành nhiều thời gian để cố gắng tìm ra điều này, vì dòng [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"này nằm trong .zlogin của tôi, nhưng tôi cho rằng nó không sử dụng nó khi mở các cửa sổ terminal mới trên mac của tôi (10.7.3, oh my zsh). Thêm nó vào .zshrc cũng làm việc cho tôi nhưng theo nhận xét stackoverflow này , .zshrc là nơi sai khi đặt điều này ??
waffl

5
Ngoài ra, hãy đảm bảo rằng đường dẫn đến $ HOME / .rvm / bin của bạn là trước / usr / bin, nếu không, bạn có thể đang gọi tệp thực thi Ruby đi kèm với OS X. Bạn có thể kiểm tra mức độ ưu tiên bằng cách nhập 'where ruby' trong ZSH .
Dave dễ hư hỏng vào

22

Lưu ý tháng 3 năm 2014:

Với RVM mới nhất, dòng sau:

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

không cần thiết nữa, và nó không nên ở trong của bạn ~/.zshrc.

Tài liệu đã được cập nhật trong tài liệu RVM với Zsh :

Đảm bảo trong Tùy chọn iTerm2: Tùy chọn trình bao đăng nhập được đặt (không sử dụng tùy chọn Lệnh). Điều này là bắt buộc để RVM hoạt động.

Nếu bạn vẫn nhận được rvm không phải là lỗi hàm trên iTerm, hãy thử:

rvm get stable --auto-dotfiles

Ít nhất trong lần cài đặt Arch Linux của tôi, xterm không sử dụng trình bao đăng nhập và do đó rvm dường như không được thiết lập chính xác, ngay cả khi chạy lệnh đó.
ioquatix

5

Ghi chú tháng 11 năm 2014

Hướng dẫn cài đặt rvm cảnh báo rằng .zshrc không bao gồm $ PATH khi đặt PATH, do đó thay thế nội dung của PATH mà không quan tâm đến những gì đã tồn tại trong PATH.

Để khắc phục điều này, bây giờ tôi thêm PATH để có .rvm/binvà sau đó thêm trước $PATH khi bắt đầu cài đặt PATHtrên dòng thứ hai:

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

Tôi đã gặp vấn đề tương tự, tôi đã giải quyết bằng cách sử dụng điều này sau khi cài đặt "ruby on rails":

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

source ~/.zshrc

0

Tôi sử dụng zsh và có [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm" trong tệp .zshrc của tôi nhưng gặp lỗi phân tích cú pháp: 404.

Khi tôi di chuyển dòng đó sang tệp .profile, lỗi đã dừng lại. Có vẻ như nó đã xung đột với một cái gì đó trong tệp .zshrc của tôi và có lẽ việc chạy nó trong .profile đã tránh được tình trạng không tương thích tệp .zshrc. Tôi đã không thể

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.