2011-12-29 8 views
105

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

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

вы уверены, что вы установили RVM правильно? какой ОС вы используете? – lesce

+2

Append выход 'РВМ info' на ваш вопрос, пожалуйста. –

+0

я имел аналогичная проблема установка rvm с apt-get на Ubuntu 11.10, мне пришлось удалить его и переустановить с помощью '$ bash -s stable <<(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm -installer) ' – lesce

ответ

119

Fixed его. Мне нужно добавить:

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

в .zshrc

+5

Возможно, это хороший пример, почему вам нужно RTFM :) – Alexander

+1

+1 работает над jenkins, чтобы использовать несколько версий rvm. – Sairam

11

Ваша оболочка не знает о функции РВМ. После его установки он расскажет вам, как позаботиться об этом. Или перейдите на страницу 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)

+0

@edwardsharp Или нет. –

+0

Я использую OS X Snow Leopard, помещая эту строку в мой .profile, сделал трюк для меня. – Heldraug

5

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

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

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

source .bash_profile 
55

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

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

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

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

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

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

+1

У меня была эта же строка ([[-s "$ HOME/...] в моем ~/.bash_profile и, похоже, не« принималась », когда я открывал новый терминал ... но когда я добавил линии ниже строки PATH в ~/.bashrc, это действительно работало - значит, я мог бы использовать rvm use 1.9.3, и он сразу же распознал бы rvm как команду без необходимости первого типа источника ~/.bash_profile - i «Я не человек linux, так что это меня смущает, но я рад, что это заработало. Возможно, кто-то может прояснить мою путаницу. – TimDog

+0

Это здорово, я просто поместил эту строку в ~/.bashrc, она работает, но я тоже не знаю почему. –

+0

Да, его работа. Но каждый раз, когда я перезапускаю свою машину, я должен давать вышеприведенные команды. Если я не предоставляю команды, то это говорит о том, что rvm не является функцией. –

0

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

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

9

(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 
3

Я просто должен был вызвать Source ~/.bash_profile

+0

это решило проблему для меня. –

1

Установка RVM, Смотрите здесь http://octopress.org/docs/setup/rvm/

+0

Не используйте источники, не являющиеся авторами для установки RVM. Страница установки [RVM] (http: // rvm.io/rvm/install) в частности говорит: «Обратите внимание, что любые внешние учебные пособия НЕ поддерживаются независимо от того, работают они или нет. Учебники велики, однако мы потратили огромное количество человеко-часов, отлаживая процесс установки. Используйте процесс установки (es) только с этого сайта, так как это только поддерживаемые типы и методы установки ». –

3

На чистую установку Ubuntu 12,04 I столкнулись с тем же вопросом. Программа установки RVM создает или добавляет в файл с именем ~/.bash_login необходимый кусок кода, чтобы избежать исходной задачи:

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

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

+0

Действительно, вам нужен этот lin в '~/.bashrc' спасибо! – Max

6

Изменение значения по умолчанию Версия рубина:

В 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 
+0

как дополнение: https://rvm.io/integration/gnome-terminal – pvllnspk

4

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

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

'rvm_path =/home/myuser/.rvm./Главная/MyUser/.rvm/скрипты/rvm' –

1

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

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

вместо:

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

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

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

0

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