在 OSX 中将 ruby​​ 和 irb 的路径更改为 1.9.2

在 OSX 中将 ruby​​ 和 irb 的路径更改为 1.9.2

我最近用过自制在 OSX 上安装 Ruby 1.9.2。新版本的二进制文件似乎位于 /usr/local/bin 中。

当我在终端中输入“ruby”(或“irb”)时,我希望执行与 1.9.2 对应的二进制文件。目前,我正在使用 ~/.bash_profile 中的脏别名执行此操作:

alias 'ruby'=/usr/local/bin/ruby
alias 'gem'=/usr/local/bin/gem
alias 'irb'=/usr/local/bin/irb

有没有更好、更“正确”的方法来做到这一点?我听人说我可能需要修正我的路径?

此外,虽然别名适用于“ruby”和“gem”,但它似乎不适用于 irb 二进制文件——当我输入“irb”时,它仍然会加载无法处理特定于 ruby​​ 1.9 的语法的交互式 ruby​​ 版本。

答案1

修复你的 PATH

删除这些别名。将它们从 中删除bash_profile。首先,检查您的路径。

echo $PATH

此处,/usr/local/bin应优先于/usr/bin。如果不是这种情况,则说明出现了问题。将这一行添加到后,尝试以下操作是否有效~/.bash_profile

export PATH=/usr/local/bin:$PATH

保存,打开一个新 shell 并运行

which -a ruby

现在您应该看到已/usr/local/bin/ruby被使用,而/usr/bin/ruby位居第二(这是 OS X 的默认 ruby​​ 1.8.7)。


替代方案:安装 RVM

为了获得更好的 Ruby 体验,我建议你完全删除 Homebrew 安装的 Ruby,然后安装RVM,Ruby 版本管理器。为什么?因为它允许您在本地安装的 Ruby 和 Gems 之间切换。

git如果尚未安装,请通过 Homebrew安装。然后:

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

安装完成后,~/bash_profile通过在终端中输入以下内容将 RVM 添加到您的:

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

最后,打开一个新的终端窗口并检查 RVM 是否工作:

type rvm | head -1

这应该输出“rvm is a function”。然后你可以继续安装 Rubies:

rvm install 1.9.2

笔记:对于任何进一步的指令,请在命令行中输入以下内容

rvm notes

这将为您提供有关什么是以及如何做的全面说明。

完成后,您可以将其设置为默认值:

rvm --default use 1.9.2

相关内容