RVM - це не функція, вибір рубінів із "rvm use ..." не працюватиме


160

Перерахуйте версії рубіну

console:~$ rvm list

rvm rubies

ruby-2.0.0-p481 [ i686 ]

# => - current
# =* - current && default
#  * - default

Спробуйте використовувати конкретну версію рубіну

console:~$ rvm use 2.0.0

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.

1
Що ти намагаєшся зробити?
Паван

Який термінал ви використовуєте? Налаштування оболонки для входу відрізняється в залежності від програми терміналу. Крім того, ви могли б source $HOME/.profileабо source $HOME/.bash_profileтам, де rvm, певно, визначив свою лінію init.
Майкл Берковський

Вам потрібно запустити консоль як оболонку для входу. Яка у вас система?
BroiSatse

Термінал Gnome the Ubuntu 12,04 lts
user3678471

4
Якщо вам цікаво, яка різниця між оболонкою для входу в систему та не входом у систему: unix.stackexchange.com/questions/38175/…
stephenbez

Відповіді:


236

Ваша консоль не працює як оболонка для входу, а отже, не має доступу до функції rvm. Якщо ви працюєте з Ubuntu, ви можете:

  1. Відкрити консоль
  2. Виберіть Правка -> Налаштування профілю
  3. Виберіть вкладку: Назва та команда
  4. Поставте прапорець "Запустити команду як оболонку входу"
  5. Перезапустити термінал

1
Я це робив, але не працював. Проблема зберігається. Як видалити rvm повністю?
user3678471

16
Звичайно, вам знадобиться наступне у вашому ~ / .profile [[-s "$ HOME / .rvm / script / rvm"]] &&. "$ HOME / .rvm / script / rvm"
наддерсоліман

3
Я думаю, це можна пояснити більше - "а отже, не мати доступу до функції rvm"
matanster

1
Це спрацювало. Бу ти можеш розказати різницю між цими двома?
Krishnadas PC

6
Що для мене працює на OSX/bin/bash --login; source ~/.rvm/scripts/rvm; rvm use 2.4.0
Jayesh

116

Введіть bash --loginсвій термінал. А потім дайтеrvm use 2.0.0


@AdityaPednekar Отже, іноді читання повідомлення про помилку / консоль насправді допомагає, 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.визначає деталі.
допитливий

Так, це допомагає зрозуміти, наскільки нерозумно складним є його використання rvmпорівняно зnvm
Янніс Іоанно

53

Здається, що ваш rvm не завантажує ".bash_profile" належним чином. Я зробив це, щоб виправити це в MAC OS X або Ubuntu 14.04, відкривши термінал і напишіть:

source ~/.rvm/scripts/rvm

41

Моє оточення - OSX Yosemite. Якщо таке ж питання було ... вирішено, додавши наступне

1) відредагуйте та додайте наступний рядок у файл .bash_profile .

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

2) Перезапустіть термінал і спробуйте команду RVM ще раз


2
Ви можете додати це до ~ / .bashrc або ~ / .zshrc (якщо ви використовуєте zsh).
adridev

Якщо ви не хочете або не можете перезапустити термінал, ви можете запустити його source ~/.bash_profileпісля редагування.
Андре Равацці

35

Якщо ви не хочете, щоб кожен раз, коли ви відкриваєте термінал, робіть пропозицію знову, просто додайте

source ~/.rvm/scripts/rvm

в кінці ~/.bashrc


Цей допоміг.
Arup Rakshit

.. та потребує перезавантаження?
gordie

16

Помилка через те, що rvm не працює, як в оболонці входу. Отже, спробуйте наступну команду:

/bin/bash --login

Ви зможете миттєво запускати команди rvm як оболонку входу в термінал.

Дякую!


15

Той самий принцип, що й інші відповіді, просто думав, що це швидше, ніж повторне відкриття терміналів :)

bash -l -c "rvm use 2.0.0"

Хтось повинен придумати кращу відповідь, ніж усі ці. Це єдиний пункт з усіх відповідей на це питання, який працює для мене, але це не те, що я хочу робити постійно. Ім на Mac OSX Sierra
djangofan

9

Вам потрібно додати source ~/.rvm/scripts/rvmв ~/.your_shellrc file. Відтепер, коли ви завантажуєте оболонку, rvm завантажується.

Наприклад:

якщо ви використовуєте оболонку zsh, потрібно додати її у ~/.zshrcфайл

якщо ви використовуєте bash shell, потрібно додати його у ~/.bashrcфайл

А потім відкрийте нову вкладку, щоб побачити ефект.


7

Для мене в Ubuntu (18.08) я додав нижче рядка в .bashrc, і він працює.

 source /home/username/.rvm/scripts/rvm

Будь ласка, додайте цей рядок.


1
Дякую! Це працювало для мене на MacOS! Як пропозицію, я думаю, що краще використовувати ~посилання на домашній шлях користувача: source ~/.rvm/scripts/rvm:-)
Джованні Бенуссі

2

З нової установки Ubuntu 16.04

1) Термінал => Редагувати => Налаштування профілю

2) Tab Command => Перевірити команду Run як оболонку для входу

3) Закрийте і знову відкрийте термінал

rvm --default use 2.2.4

0

FWIW - Я просто перебігав це також, це було в контексті скасованого пробігу селену. Можливо, там була створена інстальована підказка і залишена на місці. Закрити це вікно терміналу та відкрити нове було все, що мені потрібно було зробити. (macOS Сьєрра)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.