RVM không phải là một chức năng, việc chọn các viên hồng ngọc với 'rvm use' sẽ không hoạt động


160

Liệt kê các phiên bản ruby

console:~$ rvm list

rvm rubies

ruby-2.0.0-p481 [ i686 ]

# => - current
# =* - current && default
#  * - default

Hãy thử sử dụng một phiên bản cụ thể của ruby

console:~$ rvm use 2.0.0

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

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

1
Bạn đang cố làm gì vậy?
Pavan

Bạn sử dụng thiết bị đầu cuối nào? Đặt shell đăng nhập khác nhau cho mỗi ứng dụng đầu cuối. Ngoài ra, bạn có thể source $HOME/.profilehoặc source $HOME/.bash_profilenơi rvm có thể đã xác định dòng init của nó.
Michael Berkowski

Bạn cần chạy giao diện điều khiển của bạn như một vỏ đăng nhập. Bạn có hệ thống gì?
BroiSatse

Thiết bị đầu cuối Gnome Ubuntu 12.04
lts

4
Trong trường hợp bạn đang tự hỏi những gì khác biệt giữa một tên đăng nhập vs vỏ phi đăng nhập: unix.stackexchange.com/questions/38175/...
stephenbez

Câu trả lời:


236

Bảng điều khiển của bạn không chạy như một vỏ đăng nhập và do đó không có quyền truy cập vào chức năng rvm. Nếu bạn đang chạy Ubuntu, bạn có thể:

  1. Mở bảng điều khiển
  2. Chọn Chỉnh sửa -> Tùy chọn hồ sơ
  3. Chọn tab: Tiêu đề và Lệnh
  4. Hộp kiểm 'Chạy lệnh dưới dạng vỏ đăng nhập'
  5. Khởi động lại thiết bị đầu cuối

1
Tôi đã làm điều đó nhưng không làm việc. Vấn đề vẫn tồn tại. Làm thế nào để loại bỏ hoàn toàn rvm?
dùng3678471

16
Tất nhiên, bạn sẽ cần những điều sau trong ~ / .profile [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm"
nadersoliman

3
Tôi nghĩ rằng điều này có thể được giải thích nhiều hơn - "và do đó không có quyền truy cập vào chức năng rvm"
matanster

1
Nó đã làm việc. Bu bạn có thể cho biết sự khác biệt giữa hai?
Krishnadas PC

6
Những gì làm việc cho tôi trên OSX là/bin/bash --login; source ~/.rvm/scripts/rvm; rvm use 2.4.0
Jayesh

116

Nhập bash --logintừ thiết bị đầu cuối của bạn. Và sau đó chorvm use 2.0.0


@AdityaPednekar Vì vậy, đôi khi đọc thông báo lỗi / bảng điều khiển thực sự có ích, RVM is not a function, selecting rubies with 'rvm use ...' will not work. You need to change your terminal emulator preferences to allow login shell. Sometimes it is required to use /bin/bash --login as the command. Please visit https://rvm.io/integration/gnome-terminal/ for a example.chỉ định chi tiết.
tò mò

Vâng, nó giúp nhận ra mức độ phức tạp của nó khi sử dụng rvmso vớinvm
Jannis Ioannou

53

Có vẻ như rvm của bạn không tải ".bash_profile" đúng cách. Tôi đã thực hiện để sửa nó trong MAC OS X hoặc Ubuntu 14.04 bằng cách mở terminal và viết:

source ~/.rvm/scripts/rvm

41

Env của tôi là OSX Yosemite. Có cùng một vấn đề .... đã giải quyết bằng cách thêm vào như sau

1) chỉnh sửa và thêm dòng sau vào tệp .bash_profile .

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

2) Khởi động lại thiết bị đầu cuối và thử lại lệnh RVM


2
Bạn có thể thêm phần này vào ~ / .bashrc hoặc ~ / .zshrc (nếu bạn đang sử dụng zsh).
adridev 4/2/2015

Nếu bạn không muốn hoặc không thể khởi động lại thiết bị đầu cuối, bạn có thể chạy source ~/.bash_profilesau khi chỉnh sửa nó.
Andre Ravazzi

35

Nếu bạn không muốn rằng mỗi khi bạn mở một thiết bị đầu cuối, hãy thực hiện lại đề xuất trên, chỉ cần thêm

source ~/.rvm/scripts/rvm

ở cuối của ~/.bashrc


Điều này đã giúp.
Arup Rakshit

.. và cần khởi động lại?
gordie

16

Lỗi là do rvm không chạy như trong shell đăng nhập. Do đó hãy thử lệnh dưới đây:

/bin/bash --login

Bạn sẽ có thể chạy các lệnh rvm ngay lập tức như shell đăng nhập trong terminal.

Cảm ơn!


15

Nguyên tắc tương tự như các câu trả lời khác, chỉ nghĩ rằng nó nhanh hơn mở lại thiết bị đầu cuối :)

bash -l -c "rvm use 2.0.0"

Ai đó nên đưa ra một câu trả lời tốt hơn tất cả những điều này. Đây là mục duy nhất trong tất cả các câu trả lời cho câu hỏi này phù hợp với tôi nhưng đây không phải là điều tôi muốn làm mọi lúc. Tôi trên Mac OSX Sierra
djangofan

9

Bạn cần thêm source ~/.rvm/scripts/rvmvào ~/.your_shellrc file. Từ bây giờ khi bạn tải shell, rvm sẽ được tải.

Ví dụ:

nếu bạn đang sử dụng zsh shell, cần thêm vào ~/.zshrctập tin

nếu bạn đang sử dụng bash shell, cần thêm vào ~/.bashrctệp

Và sau đó mở một tab mới để xem hiệu ứng.


7

Đối với tôi trong Ubuntu (18,08), tôi đã thêm dòng dưới đây vào .bashrc và nó hoạt động.

 source /home/username/.rvm/scripts/rvm

Vui lòng thêm dòng này.


1
Cảm ơn! Điều này làm việc cho tôi trên MacOS! Theo gợi ý, tôi nghĩ tốt hơn nên sử dụng ~để tham khảo đường dẫn về nhà của người dùng source ~/.rvm/scripts/rvm:-)
Giovanni Benussi

2

Từ bản cài đặt Ubuntu 16.04 mới

1) Terminal => Chỉnh sửa => Tùy chọn hồ sơ

2) Tab lệnh => Kiểm tra lệnh Run dưới dạng vỏ đăng nhập

3) Đóng và mở lại thiết bị đầu cuối

rvm --default use 2.2.4

0

FWIW- Tôi cũng vừa chạy qua cái này, nó nằm trong bối cảnh của một cuộc chạy selen bị hủy bỏ. Có lẽ có một lớp vỏ phụ được khởi tạo và để nguyên tại chỗ. Đóng cửa sổ đầu cuối đó và mở một cửa sổ mới là tất cả những gì tôi cần làm. (macOS Sierra)

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.