使用brew时出现“错误的解释器”错误

当我尝试运行任何brew命令时,我收到此错误。

Holger-Sindbaeks-MacBook-Air:~ holgersindbaek$ brew help -bash: /usr/local/bin/brew: /usr/bin/ruby: bad interpreter: No such file or directory 

我完全不知道如何解决这个问题并且一直在寻找很长时间而没有回答。

你得到的意味着Homebrew无法在指定位置找到Ruby解释器。

安装Apple Developer Kit(随Xcode提供),作为可选安装,您可以使用它(或者您可以从Apple下载它)。 这将为您安装Ruby解释器。

如果你已经安装了Xcode,这意味着其中一件事情正在发生:

  1. 你有一个破碎的Ruby安装
  2. 您有多个Ruby安装
  3. 您的安装未正确配置。

要确定这是否是第一种情况,您可以运行ruby并查看是否收到任何响应。

如果不这样做,则安装已损坏,您需要重新安装。 如果你这样做,那么你运行which ruby 。 这应该为您提供Ruby可执行文件的绝对路径。 如果这是除了/usr/bin/ruby以外的任何东西,那么homebrew(以及一堆其他程序)将无法找到它。

如果您没有篡改过Ruby安装,可以查看/usr/bin/ruby已经存在: cat /usr/bin/ruby 。 如果您No such file or directory ,那么您可以轻松地创建一个指向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 

如果这没有帮助,您可能希望弄清楚并通过以下方式手动修复问题:

  1. /user/local/Library/brew.rb编辑/user/local/Library/brew.rb
  2. /1.8/更改为第一行中的/Current/ ,这将导致hashbang指向当前Ruby版本作为执行程序

如果这也没有帮助,您也可以修改MACOS检查并将其从10.5更改为10,以避免臭名昭着的“Homebrew需要Leopard或更高”错误。

免责声明

在下面的答案及其评论者中,感谢其他贡献者。 我不是在犯剽窃,只是将答案汇总成一个综合文章来帮助别人。

我收到了这个错误(大致相同):

/ usr / local / bin / brew:/usr/local/Library/brew.rb:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby:bad interpreter:没有这样的文件或目录/ usr / local / bin / brew:第26行:/usr/local/Library/brew.rb:未定义错误:0

并通过以下解决方案修复:

  1. 打开brew.rb

     $ sudo vim /usr/local/Library/brew.rb 
  2. 将第一行的1.8更改为Current

    之前:

     #!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0 

    后:

     #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0 

然后brew对我brew 。 希望有任何其他人得到这个问题会有所帮助。 🙂


如果你收到错误

Homebrew需要Leopard或更高版本。 有关Tiger支持,请参阅: https : //github.com/mistydemeo/tigerbrew

将MACOS检查从<10.5更改为<10

提示:@TimCastelijns:

10.5不起作用,因为相比之下,它高于10.10(.1 vs .5)。 我添加了一个检查( and MACOS_VERSION != 10.10 ),而不是从10.5降低到10。

发生这种情况是因为我需要更新brew – 在更新版本中它已经使用了当前的ruby

 cd /usr/local git pull -q origin refs/heads/master:refs/remotes/origin/master 

这解决了这个问题

固定:

 sudo gem install cocoapods 

冒着过度简化的风险,试试跑步

 gem install bundler 

我正在将我的Ruby环境从RBENV转换到RVM,它对我有用。

以上都没有为我工作,所以我一直在浏览并找到了这个答案, https: //stackoverflow.com/a/24225960/1359088,它确实为我修复了brew。 他在步骤1中说安装XCode 6命令行工具,但没有说明如何; 使用此命令:

 xcode-select --install 

升级到macOS High Sierra后,使用以下命令修复它:

sudo gem安装cocoapods

当我更新到MacOSX High Sierra并使用Xcode 9时,我遇到了同样的问题。 高Sierra更新ruby gem到版本2.3但Xcode 9的xcpreety命令仍然使用Ruby 2.0,现在无法找到并给出了错误的解释器。 只需前往终端并运行

 sudo gem install xcpretty 

重新启动Xcode并做新的干净构建它适合我。 希望能帮助到你!!!