RVM不是一个函数,用'rvm use …'selectruby将不起作用

列出ruby版本

console:~$ rvm list rvm rubies ruby-2.0.0-p481 [ i686 ] # => - current # =* - current && default # * - default 

尝试使用特定版本的ruby

 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. 

您的控制台没有作为loginshell运行,因此无法访问rvmfunction。 如果你正在运行Ubuntu,你可以:

  1. 打开控制台
  2. select编辑 – >configuration文件首选项
  3. select标签:标题和命令
  4. checkbox'运行命令作为loginshell'
  5. 重新启动terminal

在terminalinputbash --login 。 然后给rvm use 2.0.0

我的环境是OSX优胜美地。 有同样的问题….通过添加以下解决

1)编辑并添加[[-s“$ HOME / .rvm / scripts / rvm”]] &&。 “$ HOME / .rvm / scripts / rvm”转换.bash_profile文件

2)重启terminal,再次尝试RVM命令

看起来你的rvm不能正确加载“.bash_profile”。 我已经做了修复它在MAC OS X或Ubuntu 14.04打开terminal,并写道:

 source ~/.rvm/scripts/rvm 

如果你不想每次打开一个terminal,就再次执行上面的build议,只需添加即可

 source ~/.rvm/scripts/rvm 

~/.bashrc结尾

与其他答案一样的原则,只是认为它比重新开放的terminal更快:)

 bash -l -c "rvm use 2.0.0" 

错误是由于rvm没有在loginshell中运行。 因此请尝试下面的命令:

 /bin/bash --login 

您将能够立即运行rvm命令作为terminal中的loginshell。

谢谢!

你需要允许rvm作为一个函数运行,这样做你可以运行:

 export PATH="$PATH:$HOME/.rvm/bin" 

你可以把它放在你的任何一个点文件中,rvm会自动将它添加到你的.profile文件(当启用autodot文件的时候),这就是为什么@ BroiSatse的答案有效。

但是,如果你添加这行到你的.bashrc(或.zshrc或等效),那么这也将工作(虽然没有运行你的shell作为loginshell可能会有不良后果)。

从一个新的Ubuntu 16.04安装

1)terminal=>编辑=>configuration文件首选项

2)命令选项卡=>检查运行命令作为loginshell

3)closures,然后重新打开terminal

 rvm --default use 2.2.4 

FWIW-我也碰到过这个,就是在selenium取消的情况下。 也许有一个子壳被实例化并留在原地。 closuresterminal窗口并打开一个新窗口是我所需要做的。 (macOS Sierra)