我已经使用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,下面是我要尝试的:
打开您的shell文件。如果你使用的是哦,我的zsh,它应该是
~/.zshrc
。查找任何以
export PATH=
开头的行,如果它们提到/Applications/MAMP/Library/bin/ruby
,则从PATH
中删除该目录。还要确保任何PATH
行位于RVM添加的行之前。退出并重新启动iTerm2
如果在~/.zshrc
、~/.zprofile
或~/.profile
中没有看到任何与RVM相关的线路,则说明RVM安装不正确。
如果你真的想使用RVM,试着卸载并重新安装它。如果你只关心有一个可工作的Ruby环境,我建议你安装chruby和Ruby。你可以按照我在Mac上安装Ruby的分步指南来安装它们。