如何使用RVM更改Ruby版本?


111

我无法切换当前的Ruby版本:

  ~  rvm list

rvm rubies

   ruby-1.9.2-p290 [ x86_64 ]
   ruby-1.9.3-p0 [ x86_64 ]

  ~  rvm use ruby-1.9.3-p0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

您确定正确安装了rvm吗?您正在使用什么操作系统?
lesce 2011年

2
请附加rvm info到您的问题的输出。
锡人

我在Ubuntu 11.10上通过apt-get安装rvm遇到了类似的问题,我不得不将其删除并重新安装$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
lesce 2011年

4
Shell的启动脚本中是否具有RVM加载功能?[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"是要使用的代码。如果您的路径中安装了RVM,但启动脚本中没有安装RVM,则会RVM is not a function出现错误。
米歇尔·提里(Michelle Tilley)

Answers:


122

解决它。我需要添加:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM 

.zshrc


57

这也发生在我身上。我有:

export PATH=~/.rvm/bin:$PATH

在我的.bashrc中添加。

我要做的就是添加另一个

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

到同一个文件,就可以了!当然,那之后您必须重新启动终端。


1
我在〜/ .bash_profile中有相同的行([[--s“ $ HOME / ...]),当我打开一个新终端时似乎并没有“占用” ...但是当我添加该行时在〜/ .bashrc中的PATH行下面,它确实起作用了-意味着,我可以使用1.9.3键入rvm,并且它将立即将rvm识别为命令,而无需我首先输入source〜/ .bash_profile-我我不是一个Linux的人,所以这让我感到困惑,但是我很高兴这能使它正常工作,也许有人可以澄清我的困惑
TimDog 2012年

太好了,我只是将这一行放在〜/ .bashrc中,它可以工作。但我也不知道为什么。
马云

是的,它的工作原理。但是每次我重新启动机器时,我都必须给出上述命令。如果我不提供命令,则说rvm不是函数。
Apurva Mayank 2012年

11

您的外壳不了解RVM功能。安装后,它告诉您如何进行此处理。或转到RVM站点上的安装页面,并查看标题为“ 2.将RVM作为功能加载到您的Shell会话中”的部分。

运行一次以将rvm加载到〜/ .bash_profile中的行:

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

或自己手动添加。(请注意,在某些系统上,您可能希望将其放置在其他位置,例如在我的系统Mac OSX Lion上,将其放置在〜/ .profile中)


我正在使用OS X Snow Leopard,将该行放入我的.profile中可以解决问题。
Heldraug

9

(Kubuntu 11.10) ~/.bash_profile现在称为~/.profile

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.profile
source ~/.profile
rvm info # And now the fields display

6

要更改ruby的默认版本:

在Ubuntu 11.10中,
请更改您的GNOME终端设置:

转到终端,然后按照以下说明进行操作:

1.  Edit > Profile Preferences
2.  Open Title and Command Tab               
3.  Check Run Command as a login Shell 
4.  Restart terminal

在终端上运行以下命令:

rvm --default use ruby_Version

5

要将所有RVM功能添加到.bash_profile中,应使用以下命令:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

之后,您应该重新加载当前的shell或打开一个新的终端会话,然后键入以下命令以重新加载.bash_profile:

source .bash_profile

4

仅当当前用户安装了RVM时,以上解决方案才有效。更通用的解决方案是使用RVM路径变量:

# The following code loads RVM as user or system install:
[[ -s "$rvm_path/scripts/rvm" ]] && . "$rvm_path/scripts/rvm"

rvm_path=/home/myuser/.rvm . /home/myuser/.rvm/scripts/rvm
Jose Alban


3

在全新安装的Ubuntu 12.04上,我遇到了相同的问题。RVM安装程序将创建必要的代码位或将其附加到〜/ .bash_login文件中,以避免原始问题:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

但是,这似乎没有被调用。将其添加到〜/ .bashrc为我解决了该问题。


1

安装RVM,请参见此处http://octopress.org/docs/setup/rvm/


请勿使用非授权来源来安装RVM。该RVM安装页面特别说:“请注意,任何外部的教程,不支持他们是否工作或没有教程的工时巨大,但我们花了大量的调试安装过程中,请使用安装过程(ES)的。仅此站点,因为这是唯一受支持的安装类型和方法。”
Tin Man

1

就我在Ubuntu上的情况而言,〜/ .bashrc中的条目具有:

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

代替:

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

请注意之间缺少空格。和“ $ HOME。

另外,如果这是问题所在,则在启动终端时也应该注意一个错误。


0

我在全球安装了RVM,该RVM运行/etc/profile.d/rvm.sh。但是,该脚本要求设置BASH_VERSION或ZSH_VERSION。我从使用“ sh”的crontab运行。

我创建了一个使用/ bin / bash来包装/etc/profile.d/rvm.sh的包装脚本。


0

您需要更改终端仿真器首选项以允许登录外壳。有时需要/bin/bash --login用作命令。

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.