如何使用 RVM 更改我的 Ruby 版本?

Posted

技术标签:

【中文标题】如何使用 RVM 更改我的 Ruby 版本?【英文标题】:How do I change my Ruby version using RVM? 【发布时间】:2012-01-29 15:21:21 【问题描述】:

我无法切换当前的 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 吗?你用的是什么操作系统? 请将rvm info 的输出附加到您的问题中。 我在 Ubuntu 11.10 上使用 apt-get 安装 rvm 时遇到了类似的问题,我不得不删除它并使用 $ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) 重新安装它 你的shell的启动脚本里有RVM加载功能吗? [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 是要使用的代码。如果您的路径中安装了 RVM,但您的启动脚本中没有,您可能会收到 RVM is not a function 错误。 这个解决方案对我有用 - rvm.io/integration/gnome-terminal 【参考方案1】:

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

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

添加到我的 .bashrc 中。

我所要做的就是添加另一个

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

到同一个文件,它工作! 当然,之后你必须重启你的终端。

【讨论】:

我的 ~/.bash_profile 中有同一行([[ -s "$HOME/...)",当我打开一个新终端时,这似乎没有“接受”。 ..但是当我在 ~/.bashrc 中的 PATH 行下方添加该行时,它确实起作用了——意思是,我可以键入 rvm use 1.9.3,它会立即将 rvm 识别为命令,而无需我首先键入 source ~/.bash_profile -- 我不是一个 linux 人,所以这让我很困惑,但我很高兴这能正常工作。也许有人可以澄清我的困惑。 太好了,我把这行放在~/.bashrc 中,就可以了。但我也不知道为什么。 是的,它的工作原理。但是每次我重新启动机器时,我都必须给出上述命令。如果我不提供命令,它会说 rvm 不是函数。【参考方案2】:

您需要更改终端模拟器首选项以允许登录 贝壳。有时需要使用/bin/bash --login 作为 命令。

【讨论】:

【参考方案3】:

更改 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

【讨论】:

【参考方案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【参考方案5】:

我有一个全局安装的 RVM,它运行 /etc/profile.d/rvm.sh。但是,该脚本需要设置 BASH_VERSION 或 ZSH_VERSION。我是从 crontab 运行的,它使用“sh”。

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

【讨论】:

【参考方案6】:

修复它。我需要补充:

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

.zshrc

【讨论】:

【参考方案7】:

您的 shell 不知道 RVM 功能。安装后,它会告诉您如何处理此问题。或者访问 RVM 站点上的 install 页面并查看标题为“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 中对我来说是成功的。【参考方案8】:

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

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

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

source .bash_profile

【讨论】:

【参考方案9】:

在我的 Ubuntu 上,~/.bashrc 中的条目有:

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

代替:

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

注意 .和“$HOME。

此外,如果这是问题所在,您还应该在启动终端时注意到顶部的错误。

【讨论】:

【参考方案10】:

在全新安装 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 为我解决了这个问题。

【讨论】:

【参考方案11】:

安装 RVM,见这里http://octopress.org/docs/setup/rvm/

【讨论】:

不要使用非权威来源安装 RVM。 RVM installation page 明确表示:“请注意,任何外部教程都不受支持,无论它们是否有效。教程很棒,但是我们花费了大量的工时调试安装过程。请使用来自的安装过程仅限此站点,因为这是唯一受支持的安装类型和方法。”【参考方案12】:

我只需要调用源代码~/.bash_profile

【讨论】:

【参考方案13】:

(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

【讨论】:

以上是关于如何使用 RVM 更改我的 Ruby 版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何从我的系统中删除 RVM(Ruby 版本管理器)

如何为项目设置特定的 Ruby 版本(无 rvm 和 rbenv)

如何使用 rvm 将我的 ruby​​ 1.9.2-p0 升级到最新的补丁级别?

如何使用 RVM 更新 Ruby 解释器?

1月28日周日,更新ruby到2.5.0版,rvm更新。

如何使用不同版本的 ruby​​ 但使用相同的 gemset?