使用 RVM Ruby 而不是 MAMP Ruby
Use RVM Ruby instead of MAMP Ruby
我已经使用RVM安装了最新的稳定版Ruby,但是,我无法将其设置为默认版本。 运行 which ruby
始终 returns Ruby 在我的系统上随 MAMP 安装的路径,例如 /Applications/MAMP/Library/bin/ruby
我试过各种 rvm 命令都没有效果。我不想每次打开终端时都运行 rvm use 命令。
我正在使用 oh-my-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。
如果您不知道如何打开和编辑点文件,请阅读我的指南,其中解释了 read and edit dotfiles on a Mac 的各种方法。
如果删除这些别名没有解决问题,那么这是一个 PATH
问题。
为了让您的 Mac 了解命令或其他可执行程序,必须告诉它在哪里寻找它。计算机在整个硬盘驱动器中搜索程序效率不高。
相反,它会查找特定的位置列表,这些位置存储在名为 PATH
的环境变量中,以冒号分隔。您可以在终端中通过 运行 此命令查看此列表:
echo $PATH
当您安装新程序时,例如 Ruby,它们可能会安装在 PATH
中尚未包含的位置。如果您不将这个新位置添加到 PATH
,计算机将不知道要在那里寻找它,因此它认为它不存在。
类似地,如果新程序的位置 确实 已添加到 PATH
,但同一程序的位置更早 在 PATH
中,那么它将始终使用它找到的第一个。
大多数 Ruby 版本管理器使用脚本来自动更新 PATH
,他们会指示您在 shell 文件中添加一行来调用该脚本,否则他们可能为您添加。该行应该在 PATH
.
的任何修改之后出现
自从我使用 RVM 以来已经有一段时间了(我不再推荐它),但我认为它应该自动将这一行添加到您的 shell 文件中:
source $HOME/.rvm/scripts/rvm
假设您正确安装了 RVM,我将尝试以下操作:
打开您的 shell 文件。如果您使用 oh-my-zsh.
,它应该是 ~/.zshrc
查找任何以 export PATH=
开头的行,如果它们提到 /Applications/MAMP/Library/bin/ruby
,请从 PATH
中删除该目录。还要确保任何 PATH
行出现在 RVM 添加的行之前。
退出并重启 iTerm2
如果您在 ~/.zshrc
或 ~/.zprofile
或 ~/.profile
中没有看到任何 RVM-related 行,那么 RVM 没有正确安装。
如果您真的想使用RVM,请尝试卸载并重新安装它。如果您只关心有一个工作的 Ruby 环境,我会推荐 chruby 和 ruby-install。您可以按照我的 step-by-step guide to install Ruby on Mac.
安装它们
我已经使用RVM安装了最新的稳定版Ruby,但是,我无法将其设置为默认版本。 运行 which ruby
始终 returns Ruby 在我的系统上随 MAMP 安装的路径,例如 /Applications/MAMP/Library/bin/ruby
我试过各种 rvm 命令都没有效果。我不想每次打开终端时都运行 rvm use 命令。
我正在使用 oh-my-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。
如果您不知道如何打开和编辑点文件,请阅读我的指南,其中解释了 read and edit dotfiles on a Mac 的各种方法。
如果删除这些别名没有解决问题,那么这是一个 PATH
问题。
为了让您的 Mac 了解命令或其他可执行程序,必须告诉它在哪里寻找它。计算机在整个硬盘驱动器中搜索程序效率不高。
相反,它会查找特定的位置列表,这些位置存储在名为 PATH
的环境变量中,以冒号分隔。您可以在终端中通过 运行 此命令查看此列表:
echo $PATH
当您安装新程序时,例如 Ruby,它们可能会安装在 PATH
中尚未包含的位置。如果您不将这个新位置添加到 PATH
,计算机将不知道要在那里寻找它,因此它认为它不存在。
类似地,如果新程序的位置 确实 已添加到 PATH
,但同一程序的位置更早 在 PATH
中,那么它将始终使用它找到的第一个。
大多数 Ruby 版本管理器使用脚本来自动更新 PATH
,他们会指示您在 shell 文件中添加一行来调用该脚本,否则他们可能为您添加。该行应该在 PATH
.
自从我使用 RVM 以来已经有一段时间了(我不再推荐它),但我认为它应该自动将这一行添加到您的 shell 文件中:
source $HOME/.rvm/scripts/rvm
假设您正确安装了 RVM,我将尝试以下操作:
打开您的 shell 文件。如果您使用 oh-my-zsh.
,它应该是~/.zshrc
查找任何以
export PATH=
开头的行,如果它们提到/Applications/MAMP/Library/bin/ruby
,请从PATH
中删除该目录。还要确保任何PATH
行出现在 RVM 添加的行之前。退出并重启 iTerm2
如果您在 ~/.zshrc
或 ~/.zprofile
或 ~/.profile
中没有看到任何 RVM-related 行,那么 RVM 没有正确安装。
如果您真的想使用RVM,请尝试卸载并重新安装它。如果您只关心有一个工作的 Ruby 环境,我会推荐 chruby 和 ruby-install。您可以按照我的 step-by-step guide to install Ruby on Mac.
安装它们