Как изменить версию Ruby с помощью RVM?

Я не могу переключить текущую версию Ruby:

➜  ~  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.

Ответ 1

Исправлено. Мне нужно было добавить:

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

to .zshrc

Ответ 2

Это случилось со мной. У меня было:

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

Добавлен в мой .bashrc.

Все, что мне нужно было сделать, это добавить еще

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

в тот же файл, и он сработает! Конечно, после этого вы должны перезапустить свой терминал.

Ответ 3

Ваша оболочка не знает о функции RVM. После его установки он расскажет вам, как позаботиться об этом. Или перейдите на страницу install на сайте RVM и проверьте раздел под названием "2. Загрузите RVM в свои сеансы оболочки как функцию"

Запустите этот раз, чтобы добавить строку, загружающую rvm в ваш файл ~/.bash_profile:

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

или вручную добавьте его самостоятельно. (Обратите внимание, что в некоторых системах вы захотите поместить его в другие места, например, в мою систему, Mac OSX Lion, я поместил его в ~/.profile)

Ответ 4

(Kubuntu 11.10) ~/.bash_profile теперь называется ~/.profile

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

Ответ 5

Изменить версию по умолчанию ruby:

В Ubuntu 11.10
измените настройку терминала GNOME:

Перейдите в Терминал, а затем выполните следующие инструкции:

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

Запустите эту команду на терминале:

rvm --default use ruby_Version

Ответ 6

Чтобы добавить все функциональные возможности RVM в ваш .bash_profile, вы должны использовать следующую команду:

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

После этого вы должны перезагрузить текущую оболочку или открыть новый сеанс терминала и ввести следующую команду для перезагрузки .bash_profile:

source .bash_profile

Ответ 7

Вышеупомянутое решение будет работать, только если RVM установлен для текущего пользователя. Более общее решение будет использовать переменную пути RVM:

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

Ответ 8

Мне просто нужно было вызвать source ~/.bash_profile

Ответ 9

На чистой установке Ubuntu 12.04 я столкнулся с той же проблемой. Установщик RVM создает или добавляет к файлу с именем ~/.bash_login необходимый бит кода, чтобы избежать исходной проблемы:

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

Однако это не похоже на вызов. Добавление его в ~/.bashrc разрешило проблему для меня.

Ответ 11

В моем случае на Ubuntu запись в ~/.bashrc имела:

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

вместо:

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

Обратите внимание на недостающее место между. и "$ HOME.

Кроме того, если это проблема, вы также должны заметить ошибку сверху при запуске своего терминала.

Ответ 12

У меня была глобальная установка RVM, которая запускает /etc/profile.d/rvm.sh. Однако для script требуется установить BASH_VERSION или ZSH_VERSION. Я бежал от crontab, который использует "sh".

Я создал оболочку script, которая использует /bin/ bash для источника/etc/profile.d/rvm.sh.

Ответ 13

Вам нужно изменить настройки эмулятора терминала, чтобы разрешить вход в систему оболочка. Иногда требуется использовать /bin/bash --login как команда.