如何使用 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 版本?的主要内容,如果未能解决你的问题,请参考以下文章
如何为项目设置特定的 Ruby 版本(无 rvm 和 rbenv)