我最近用过自制在 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