Установка 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
Ответ 14
source ~/.bash_profile
... должен сделать трюк..., вероятно, нужно снова выйти и войти в систему.
Как перезагрузить .bash_profile из командной строки?
Ответ 15
"Официальные" инструкции есть: https://rvm.io/integration/gnome-terminal/
Ответ 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*