您得到的意味着 Homebrew 无法在指定位置找到 Ruby 解释器。
安装 Apple 开发工具包(Xcode 附带),它应该作为可选安装提供给您(或者您可以简单地从 Apple 下载它)。这将为您安装 Ruby 解释器。
如果您已经安装了 Xcode,这意味着正在发生以下情况之一:
- 您的 Ruby 安装已损坏
- 您有多个 Ruby 安装
- 您的安装配置不正确。
要确定这是否是第一种情况,您可以运行 ruby 并查看是否收到任何响应。
否则,您的安装已损坏,您需要重新安装。如果你这样做了,那么你运行which ruby。这应该为您提供 Ruby 可执行文件的绝对路径。如果这不是/usr/bin/ruby,那么自制软件(和一堆其他程序)将无法找到它。
如果您从未篡改过您的 Ruby 安装,您可以检查/usr/bin/ruby 是否已经存在:cat /usr/bin/ruby。如果您得到No such file or directory,那么您可以轻松地创建一个指向您的Ruby 安装的符号链接。假设which ruby 的输出到/usr/local/bin/ruby,您可以这样创建符号链接:sudo ln -s /usr/local/bin/ruby /usr/bin/ruby,一切都应该很好。
如果该位置有文件,您可以运行file /usr/bin/ruby 来查看它是真实文件、符号链接还是损坏的文件。如果它是一个符号链接,那么您的安装应该可以正常工作,因为它不是,它可能是一个损坏的符号链接或者它是一个伪造的文件。
您可以通过首先删除它 (sudo rm /usr/bin/ruby) 然后创建一个指向正确位置的新符号链接 (sudo ln -s /usr/local/bin/ruby /usr/bin/ruby) 来解决这个问题。
如果上述方法都不起作用,您应该在全新安装 Xcode 并删除系统上安装 Ruby 的任何痕迹后咨询自制软件团队。
编辑
或者,正如其他答案所指出的那样,问题可能是因为您的 Homebrew 设置中的 ruby 版本错误。
快速修复可能是更新您的 Homebrew:
cd /usr/local
git pull -q origin refs/heads/master:refs/remotes/origin/master
如果这没有帮助,您可能想亲自动手并通过以下方式手动解决问题:
- 从
/user/local/Library/brew.rb 编辑brew.rb
- 将第一行中的
/1.8/ 更改为 /Current/,这将导致 hashbang 指向当前的 Ruby 版本作为执行者
如果这也没有帮助,您也可以修改 MACOS 检查并将其从 10.5 更改为 10 以避免臭名昭著的“Homebrew 需要 Leopard 或更高”的错误。
免责声明
非常感谢以下答案中的其他贡献者及其评论者。我没有抄袭,只是将答案汇总到一篇综合文章中以帮助他人。