Подтвердить что ты не робот

Ошибка "RVM не является функцией"

RVM установлен на моем компьютере (работает Mac OSX 10.6.8), и он работает нормально. Странно, что для его запуска я должен использовать source ~/.rvm/scripts/rvm для каждого нового сеанса. Я попытался сделать символическую ссылку от нее до /opt/local/bin/rvm, но когда она запускается, она ничего не делает. Я также попытался создать символическую ссылку от ~/.rvm/bin/rvm до /opt/local/bin/rvm, а когда я запустил rvm в терминале, она отобразит страницу справки, как и ожидалось. Но когда я пытаюсь rvm use some_ruby_version, он всегда показывает: "RVM не является функцией, выбор рубинов с использованием" rvm use... "не будет работать". Как я могу это исправить?

Моя цель - получить его до такой степени, что мне не нужно вводить команду источника каждый сеанс, и по какой-то причине ~/.profile не выполняется.

4b9b3361

Ответ 1

Я не понял, что делает ~/.profile правильно; Мне нужно было изменить ~/.bash_profile. Проблема решена!

Ответ 2

Вы должны перенести RVM script в текущий сеанс, потому что он вносит изменения в среду оболочки - и это абсолютно невозможно сделать из дочернего процесса. Ваши усилия по запуску RVM в качестве внешней команды не могут быть успешными.

Чтобы исправить это, у вас есть два варианта:

  • Настройте эмулятор терминала для запуска оболочки входа, а не оболочки без входа, чтобы загрузился ваш .profile.
  • Измените .bashrc на исходный RVM вместо этого, который также работает и для недействительных оболочек.

Чтобы сделать вторую, вы можете просто добавить в ~/.bashrc:

if test -f ~/.rvm/scripts/rvm; then
    [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm
fi

Ответ 3

Если вы используете zsh вместо оболочки bash, вам необходимо:

1.

vi ~/.zshrc 

2. Как сказал Мэтт, добавьте:

if test -f ~/.rvm/scripts/rvm; then
   [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm
fi

3. Перезапуск Terminall 4. Сделано!

rvm use 1.9.3

Работа Wil

Ответ 4

Ну, с горным львом (10.8.3), что работало для меня, редактировалось /etc/profile

и добавив строку, указанную ранее в нижней части файла:

  if test -f ~/.rvm/scripts/rvm; then
        [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm
    fi

Ответ 5

У меня была такая же проблема. Я обнаружил, что файл .profile не обновляется, поэтому я добавил ту же команду, которая была добавлена ​​в .bash_profile:

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

Я не знаю, правильно ли это, но это сработало...

Ответ 6

Вам не нужно редактировать что-либо, как предлагают другие. Просто зайдите в настройки своего терминала и выберите команду "Запуск в качестве оболочки входа". Это приведет к запуску .profile в следующем экземпляре терминала. Повторно запустите терминал, и вы сможете использовать rvm use 1.9.3 (или любую другую версию, которую вы установили).

Дополнительная информация найдена на rvm.io(что также отличное место для ответов)

https://rvm.io/integration/gnome-terminal

Ответ 7

Вам нужно сделать некоторые настройки.

Откройте терминал и запустите эту команду.

source ~/.rvm/scripts/rvm

а затем перейдите к edit > Title and command и проверьте Run command as login shell

и все готово. Теперь вам не нужно указывать источник каждый раз.

Ответ 8

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

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

Я думал, что путь, которым должен пользоваться Мина, был следующим:

 /usr/local/rvm/bin/rvm

Когда на самом деле это было так:

/usr/local/rvm/scripts/rvm

Ответ 9

У меня была эта проблема, когда я стал root. Я попробовал много из вышеперечисленных решений. В конечном итоге работала с корнем и была постоянным пользователем. Это то, что мне было нужно.

Ответ 10

Ни одно из этих решений, похоже, не искупило мою проблему, которая была на Ubuntu 12.04 LTS.

Я сделал следующее:

  • rvm get stable --auto-dotfiles, как указано в документации RVM здесь
  • Добавлен source ~/.profile в качестве первой строки: ~/.bash_profile

Я не буду все эти шаги документированы как ошибки из командной строки RVM:

RVM не является функцией, выбирая рубины с использованием "rvm use...", не будет Работа. Вам нужно изменить настройки эмулятора терминала, чтобы login shell. Иногда требуется использовать /bin/bash --login как команда. Пожалуйста, посетите https://rvm.io/integration/gnome-terminal/для примера.

и

  • ПРЕДУПРЕЖДЕНИЕ: у вас есть файл ~ ~.profile, вы можете загрузить его, для этого добавьте следующую строку в '/home/user_name/.bash_profile':

    источник ~/.profile