Làm cách nào để thay đổi phiên bản Ruby của tôi bằng RVM?


111

Tôi không thể chuyển phiên bản Ruby hiện tại:

  ~  rvm list

rvm rubies

   ruby-1.9.2-p290 [ x86_64 ]
   ruby-1.9.3-p0 [ x86_64 ]

  ~  rvm use ruby-1.9.3-p0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

bạn có chắc là bạn đã cài đặt rvm đúng cách không? bạn đang sử dụng hệ điều hành nào?
lesce

2
rvm infoVui lòng nối đầu ra của câu hỏi của bạn.
Tin Man

Tôi đã có một vấn đề tương tự bằng cách cài đặt RVM với apt-get trên Ubuntu 11.10, tôi đã phải gỡ bỏ nó và cài đặt lại nó với$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
Lesce

4
Bạn có chức năng tải RVM trong tập lệnh khởi động của trình bao không? [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"là mã để sử dụng. Nếu bạn đã cài đặt RVM trong đường dẫn của mình, nhưng bạn không có cài đặt đó trong tập lệnh khởi động, bạn có thể gặp RVM is not a functionlỗi.
Michelle Tilley

Giải pháp này làm việc cho tôi - rvm.io/integration/gnome-terminal
gotqn

Câu trả lời:


122

Đã sửa nó. Tôi cần thêm:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM 

đến .zshrc


57

Điều này xảy ra với tôi quá. Tôi đã có:

export PATH=~/.rvm/bin:$PATH

Đã thêm vào .bashrc của tôi.

Tất cả những gì tôi phải làm là thêm một

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

vào cùng một tệp và nó đã hoạt động! Tất nhiên, bạn phải khởi động lại thiết bị đầu cuối của mình sau đó.


1
tôi đã có cùng dòng này ([[-s "$ HOME / ...) trong ~ / .bash_profile của tôi và điều đó dường như không" mất "khi tôi mở một thiết bị đầu cuối mới ... nhưng khi tôi thêm dòng bên dưới dòng PATH trong ~ / .bashrc, nó đã hoạt động - nghĩa là, tôi có thể nhập rvm bằng cách sử dụng 1.9.3 và nó sẽ ngay lập tức nhận ra rvm là một lệnh mà tôi không cần phải nhập source ~ / .bash_profile - i ' . m không phải là người linux, vì vậy lẫn lộn này với tôi, nhưng tôi vui mừng này đã nhận nó làm việc có lẽ ai đó có thể làm rõ sự nhầm lẫn của tôi.
TimDog

thật tuyệt, tôi chỉ cần đặt dòng này trong ~ / .bashrc, nó hoạt động. nhưng tôi cũng không biết tại sao.
Jack Ma

Vâng, nó đang hoạt động. Nhưng mỗi khi khởi động lại máy, tôi phải đưa ra các lệnh đã đề cập ở trên. Nếu tôi không cung cấp các lệnh, nó nói rằng rvm không phải là một hàm.
Apurva Mayank

11

Trình bao của bạn không biết về chức năng RVM. Sau khi bạn cài đặt nó, nó sẽ cho bạn biết cách xử lý việc này. Hoặc vào phần cài đặt trang trên trang RVM và xem phần có tiêu đề "2. Tải RVM vào các phiên trình bao của bạn dưới dạng một hàm"

Chạy điều này một lần để thêm dòng tải rvm vào ~ / .bash_profile của bạn:

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

hoặc tự thêm thủ công. (Lưu ý rằng trên một số hệ thống, bạn sẽ muốn đặt nó ở những nơi khác, ví dụ như trên hệ thống của tôi, Mac OSX Lion, tôi đặt nó vào ~ / .profile)


Tôi đang sử dụng OS X Snow Leopard, việc đặt dòng đó trong tệp .profile của tôi đã thực hiện một thủ thuật cho tôi.
Heldraug

9

(Kubuntu 11.10) ~/.bash_profileBây giờ được gọi là~/.profile

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.profile
source ~/.profile
rvm info # And now the fields display

6

Để thay đổi phiên bản mặc định của ruby:

Trong Ubuntu 11.10,
vui lòng thay đổi cài đặt đầu cuối GNOME của bạn:

Đi tới Terminal và sau đó làm theo các hướng dẫn sau:

1.  Edit > Profile Preferences
2.  Open Title and Command Tab               
3.  Check Run Command as a login Shell 
4.  Restart terminal

Chạy lệnh này trên thiết bị đầu cuối:

rvm --default use ruby_Version

5

Để thêm tất cả chức năng RVM vào .bash_profile của bạn, bạn nên sử dụng lệnh sau:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

Sau đó, bạn nên tải lại trình bao hiện tại hoặc mở một phiên đầu cuối mới và nhập lệnh sau để tải lại .bash_profile:

source .bash_profile

4

Giải pháp trên sẽ chỉ hoạt động nếu RVM được cài đặt cho người dùng hiện tại. Một giải pháp chung hơn sẽ sử dụng biến đường dẫn RVM:

# The following code loads RVM as user or system install:
[[ -s "$rvm_path/scripts/rvm" ]] && . "$rvm_path/scripts/rvm"

rvm_path=/home/myuser/.rvm . /home/myuser/.rvm/scripts/rvm
Jose Alban,


3

Trong một bản cài đặt sạch sẽ của Ubuntu 12.04, tôi đã gặp phải vấn đề tương tự. Trình cài đặt RVM tạo hoặc gắn vào tệp có tên ~ / .bash_login bit mã cần thiết để tránh sự cố ban đầu:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

Tuy nhiên điều này dường như không được gọi. Việc thêm nó vào ~ / .bashrc đã giải quyết được vấn đề cho tôi.


1

Cài đặt RVM, Xem tại đây http://octopress.org/docs/setup/rvm/


Không sử dụng các nguồn không có thẩm quyền để cài đặt RVM. Các trang cài đặt RVM đặc biệt nói: "Lưu ý rằng bất kỳ hướng dẫn bên ngoài không được hỗ trợ cho dù họ làm việc hay không Hướng dẫn là rất lớn, tuy nhiên chúng tôi đã dành một lượng lớn giờ người đàn ông gỡ lỗi quá trình cài đặt Vui lòng sử dụng quá trình cài đặt (es) từ.. chỉ trang web này, vì đây là phương pháp và kiểu cài đặt được hỗ trợ duy nhất. "
the Tin Man

1

Trong trường hợp của tôi trên Ubuntu, mục nhập trong ~ / .bashrc có:

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

thay vì:

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

Chú ý khoảng trống bị thiếu giữa. và "$ HOME.

Ngoài ra, nếu đây là sự cố, bạn cũng nên nhận thấy lỗi ở trên cùng khi khởi động thiết bị đầu cuối của mình.


0

Tôi đã có một bản cài đặt toàn cầu của RVM, chạy /etc/profile.d/rvm.sh. Tuy nhiên, tập lệnh đó yêu cầu đặt BASH_VERSION hoặc ZSH_VERSION. Tôi đang chạy từ crontab, sử dụng "sh".

Tôi đã tạo một tập lệnh trình bao bọc sử dụng / bin / bash đến nguồn /etc/profile.d/rvm.sh.


0

Bạn cần thay đổi tùy chọn trình giả lập đầu cuối của mình để cho phép trình bao đăng nhập. Đôi khi nó được yêu cầu sử dụng /bin/bash --loginnhư lệnh.

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.