使用RVM Ruby而不是MAMP Ruby



我已经使用RVM安装了Ruby的最新稳定版本,但我不能将其设置为默认版本。运行which ruby总是返回在我的系统上安装了MAMP的Ruby的路径,例如/Applications/MAMP/Library/bin/ruby

我尝试过各种rvm命令,但都没有效果。我宁愿不必每次打开终端时都运行rvm-use命令。

如果有区别的话,我会使用哦我的zsh和iTerm2。

正如Dave Newton所建议的,这闻起来像是PATH问题,但在MAMP的情况下,它也是alias问题。

如果你打开~/.profile~/.zprofile,你可能会看到其中一行:

alias erb='/Applications/MAMP/Library/bin/erb'
alias gem='/Applications/MAMP/Library/bin/gem'
alias irb='/Applications/MAMP/Library/bin/irb'
alias rake='/Applications/MAMP/Library/bin/rake'
alias rdoc='/Applications/MAMP/Library/bin/rdoc'
alias ri='/Applications/MAMP/Library/bin/ri'
alias ruby='/Applications/MAMP/Library/bin/ruby'
alias rails='/Applications/MAMP/Library/bin/rails'

您需要将它们全部删除,保存文件,然后退出并重新启动iTerm2。

如果你不知道如何打开和编辑点文件,请阅读我的指南,该指南解释了在Mac上读取和编辑点档案的各种方法。

如果删除这些别名并不能解决问题,那么这就是PATH问题。

为了让你的Mac知道一个命令或其他可执行程序,必须告诉它在哪里可以找到它。计算机在整个硬盘上搜索该程序是没有效率的。

相反,它会查找一个特定的位置列表,这些位置存储在一个名为PATH的环境变量中,用冒号分隔。您可以通过在终端中运行以下命令来查看此列表:

echo $PATH

当您安装新程序(如Ruby(时,它们可能会安装在PATH中尚未包含的位置。如果你不将这个新位置添加到PATH中,计算机将不知道在那里寻找它,因此它认为它不存在。

类似地,如果新程序的位置确实被添加到PATH,但您在PATH中有之前相同程序的另一个位置,则它将始终使用它找到的第一个位置。

大多数Ruby版本管理器使用脚本自动更新PATH,并指示您在shell文件中添加一行来调用该脚本,或者他们可能会为您添加该脚本。该行应该在PATH的任何修改之后出现。

我已经有一段时间没有使用RVM了(我不再推荐它(,但我认为它应该自动将这一行添加到你的shell文件中:

source $HOME/.rvm/scripts/rvm

假设你正确安装了RVM,下面是我要尝试的:

  1. 打开您的shell文件。如果你使用的是哦,我的zsh,它应该是~/.zshrc

  2. 查找任何以export PATH=开头的行,如果它们提到/Applications/MAMP/Library/bin/ruby,则从PATH中删除该目录。还要确保任何PATH行位于RVM添加的行之前。

  3. 退出并重新启动iTerm2

如果在~/.zshrc~/.zprofile~/.profile中没有看到任何与RVM相关的线路,则说明RVM安装不正确。

如果你真的想使用RVM,试着卸载并重新安装它。如果你只关心有一个可工作的Ruby环境,我建议你安装chruby和Ruby。你可以按照我在Mac上安装Ruby的分步指南来安装它们。

最新更新