Установка rvm не работает: "RVM не является функцией"

Я только что установил RVM, но не могу заставить его работать. У меня есть такая строка в конце моего файла .profile:

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

Я попытался запустить source .profile и перезапустить терминал, но все же, когда я запускаю rvm use 1.9.2, я получаю:

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

Моя система - Ubuntu 11.10.

Ответ 1

Вы не используете оболочку входа.

Процесс включения флага входа в систему описывается здесь, а также некоторые подробности о том, что можно найти в оболочке входа здесь.

Таким образом, в настройках терминала Gnome вам необходимо проверить опцию "Запустить как оболочку входа". После этого установите флаг.

Иногда требуется установить команду /bin/bash --login.


Для удаленных подключений важно понимать различие между запуском интерактивного сеанса ssh и выполнением отдельных команд.

При запуске ssh server, а затем работая с сервером в интерактивном режиме, вы используете оболочку для входа по умолчанию, и все это нормально, но для ssh server "command" вы не используете оболочку для входа, и она должна будет запускать ее с помощью ssh server 'bash -lc "command"'.

Любой удаленный вызов может иметь ту же проблему, что и выполнение одной команды с помощью ssh.

Ответ 2

Вам необходимо запустить следующее

$ source ~/.rvm/scripts/rvm

затем запустите это

$ type rvm | head -n 1

и если вы

rvm is a function

проблема решена.

Вам также необходимо выполнить user$ rvm requirements чтобы увидеть user$ rvm requirements к зависимостям для вашей операционной системы

Источник: https://rvm.io/rvm/install/

Я забыл упомянуть, что вам нужно вставить этот код в файл ~/.bashrc или ~/.zshrc, и вам не нужно будет снова писать этот код. Ура!

Ответ 3

Чтобы окончательно разрешить это просто вырезать/вставить следующую строку:

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

От: ~/.bash_profile file

To: ~/.bashrc file

Причина этого заключается в том, что .bashrc выполняется каждый раз, когда вы вводите терминал, и .bash_profile при каждом входе в систему. Поэтому решение /bin/bash --login работает, но вы должны делать это каждый раз, когда вы вводите терминал. Таким образом, вы настроены до следующего формата, и вы забудете все это:)

Ответ 4

Я тоже столкнулся с этой проблемой. Наконец, я выполнил эту строку на терминале.

source ~/.rvm/scripts/rvm

Проблема исправлена. Поскольку эта строка сделает экземпляр RVM функцией для определенного времени.

Ответ 5

Последний RVM (rvm 1.11.6 (стабильный)) перестает работать на Ubuntu (10.10 - 64 бит - ботаник gnat или что-то еще) - я продолжал получать

"RVM не является функцией, выбор рубинов с использованием" rvm use... "не будет работать".

До этого я получил сообщение, но "rvm [email protected]" будет работать. Теперь это не сработает - вы вообще не можете изменить gemset.

Ничего не работало, пока я не нашел это - сделайте это LAST-строку в /home/your-name/.bashrc

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

Ответ 6

Как вы сказали, показанная ошибка может быть следующей.

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.

Как указано выше, просто введите "/bin/bash --login" в свой терминал (после перезапуска вашего терминала), затем введите команду "rvm use 1.9.3" (для например), и он начнет использовать ту же версию.

Просто выполните команду ruby ​​-v, чтобы подтвердить, что RVM использует обновленную версию Ruby.

Ответ 7

У меня тоже была проблема с новой установкой rvm, и не ответы на них здесь исправили. Перейдя на официальный сайт rvm, в разделе "Основы", они имеют следующую команду:

# из http://rvm.io/rvm/basics

source $(rvm 1.9.3 do rvm env --path)

Вы должны изменить 1.9.3 для рубиновой версии, которую вы действительно хотите, и она сделает функцию rvm независимо от типа оболочки.

Ответ 8

Может быть, вы можете попробовать belows:

  • Ваш терминал →
  • Изменить →
  • Настройки профиля →
  • Название и команда →
  • Проверьте команду "Запуск в качестве оболочки входа"
  • Готово

Ответ 9

хотя вы приняли ответ, я хотел бы предложить другой способ. ~/.bashrc загружается до открытия любой оболочки. Добавьте эту строку в конце этого, и вам не нужна какая-либо из этой вещи в командной строке.

Ответ 10

Запустите bash --login, а затем запустите rvm use 2.0.0.

Ответ 11

Откройте терминал, а затем перейдите в Изменить > Настройки профиля, а затем перейдите к вкладке " Название и команда" и отметьте " Команда запуска в качестве логина Shell".

Загрузите Bash и теперь вы можете установить Gems непосредственно с терминала без использования sudo и ошибки " RVM не является функцией, выбирая рубины с использованием" rvm use... ", не будет работать." будет устранено.

Приветствия.

Ответ 12

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

  • Обновить ZSH. (Попытка немедленно обновить работу не по какой-либо причине. Поэтому удалена и переустановлена ​​обновленная версия здесь)
  • Установите оболочку по умолчанию как zsh (т.е. если вы предпочитаете zsh) с помощью sudo chsh -s $(which zsh) $USER
  • Убедитесь, что следующий код находится внизу вашего .zshrc после того, как вы установили последний RVM, возможно, используя CURL из официального сайта RVM

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
    source ~/.profile
    
  • САМАЯ ВАЖНАЯ ТОЧКА: Убедитесь, что в вашем файле .zshrc каждый экспорт в PATH добавляется с помощью :$PATH. Я считаю, что это был корень моих проблем даже после выполнения вышеуказанных шагов.

  • опубликуйте все мои проблемы RVM Не будучи функцией. Если он все еще не работает, попробуйте здесь прочесть ошибку. После нескольких часов борьбы за решение этой проблемы, я уверен, что я, должно быть, видел все связанные с этим ошибки.

Надеюсь, что это поможет. Ура!

Ответ 13

Процедура установки Ruby 1.9.3-p125 на Mac OSX 10.8 Mountain Lion

  • Вы уже установили последний XCode ( >= 4.3), а в командной строке Objective-C компилятор "clang".
  • Вы должны запустить оболочку bash, чтобы эта процедура работала.
  • Перейдите в Системные настройки
  • Нажмите "Пользователи и группы"
  • Нажмите блокировку в левом нижнем углу панели и введите свой пароль, чтобы разблокировать ее.
  • "Ctrl-Click" на вашем значке пользователя в левой панели панели и выберите "Дополнительные параметры..."
  • Измените оболочку входа в "/bin/ bash"
  • Закрыть настройки
  • Откройте окно терминала (нажмите команду + пробел и введите "терминал" )
  • Следуйте инструкциям:

http://www.frederico-araujo.com/2011/07/30/installing-rails-on-os-x-lion-with-homebrew-rvm-and-mysql/

Примечания:

  • Чтобы установить ruby, вам может потребоваться указать компилятор clang:

    $rvm install 1.9.3p125 --with-gcc = clang

  • Если RVM хватается за /usr/local/rvm не найден, вам нужно создать ссылку:

    $ln -s/Пользователи/[ваше имя пользователя]/. rvm/usr/local/rvm

Ответ 16

У меня была такая же ошибка, потому что я когда-либо устанавливал старую версию rvm ruby-rvm с помощью команды apt-get.

Я решил проблему, удалив строку script, чтобы скопировать старый файл rvm в .bashrc.

Проверьте старый rvm config script, а затем запустите source.profile

Ответ 17

У меня была такая же ошибка, но ни одно из решений на этой странице, похоже, не работало. Для меня было достаточно добавить исполняемый файл rvm к моему пути:

PATH=$PATH:/usr/local/rvm/bin/

Et voila!

Ответ 18

У меня была такая же проблема, и я сделал это в моем .bash_profile, и это сработало. source "$HOME/.rvm/scripts/rvm".

Ответ 19

Для тех, кто приходит с той же проблемой, и они используют lubuntu, как я, я следил за этой ссылкой :

Вы запускаете свой терминал с помощью

lxterminal -e "bash -il"

Спасибо @mpapsis, который указал мне в правильном направлении

Ответ 20

Я исправил это, добавив эту строку в .bash_profile:

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