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
你想做什么?
2014年

您使用什么终端?设置登录外壳程序因终端应用程序而异。或者,您可以source $HOME/.profilesource $HOME/.bash_profile在rvm可能已定义其init行的地方。
Michael Berkowski 2014年

您需要将控制台作为登录Shell运行。你有什么系统?
BroiSatse 2014年

终端侏儒Ubuntu 12.04
lts

4
如果您想知道登录外壳程序与非登录外壳程序之间的区别是:unix.stackexchange.com/questions/38175/…–
stephenbez

Answers:


236

您的控制台未作为登录外壳运行,因此无法访问rvm功能。如果您正在运行Ubuntu,则可以:

  1. 打开控制台
  2. 选择编辑->配置文件首选项
  3. 选择选项卡:标题和命令
  4. 复选框“将命令作为登录shell运行”
  5. 重启终端

1
我这样做了,但是没用。问题仍然存在。如何彻底删除rvm?
user3678471 2014年

16
当然,您需要在〜/ .profile [[-s“ $ HOME / .rvm / scripts / rvm”]] &&中添加以下内容。“ $ HOME / .rvm / scripts / rvm”
nadersoliman 2014年

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.指定详细信息。
好奇

是的,rvmnvm
Jannis Ioannou

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)

..是否需要重新启动?
戈迪

16

该错误是由于rvm没有像登录shell中那样运行。因此,请尝试以下命令:

/bin/bash --login

您将能够在终端中作为登录Shell立即运行rvm命令。

谢谢!


15

与其他答案相同的原理,只是认为它比重新打开终端要快:)

bash -l -c "rvm use 2.0.0"

有人应该比所有这些提出更好的答案。这是该问题所有答案中唯一对我有用的项目,但这并不是我一直想做的事情。我在Mac OSX Sierra上
djangofan

9

您需要添加source ~/.rvm/scripts/rvm~/.your_shellrc file。从现在开始,当您加载外壳程序时,将加载rvm。

例如:

如果您使用的是zsh shell,则需要添加~/.zshrc文件

如果您使用的是bash shell,则需要添加~/.bashrc文件

然后打开一个新选项卡以查看效果。


7

在Ubuntu(18.08)中,对于我来说,我在.bashrc中添加了以下代码,它可以正常工作。

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

请添加此行。


1
谢谢!这在MacOS上对我有用!作为建议,我认为最好使用~引用用户的家庭路径:source ~/.rvm/scripts/rvm:-)
Giovanni Benussi

2

从新的Ubuntu 16.04安装

1)终端=>编辑=>配置文件首选项

2)命令选项卡=>选中运行命令作为登录外壳

3)关闭,然后重新打开终端

rvm --default use 2.2.4

0

FWIW-我也碰到了这一点,这是在硒运行取消的情况下进行的。也许有一个子壳被实例化并留在原地。我只需要关闭终端窗口并打开一个新窗口即可。(macOS Sierra)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.