【问题标题】:Getting a "bad interpreter" error when using brew使用 brew 时出现“错误解释器”错误
【发布时间】:2012-02-10 11:43:35
【问题描述】:

当我尝试运行任何 brew 命令时出现此错误。

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

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

【问题讨论】:

  • 哪个 OS X?您是否删除了系统 Ruby?
  • 老实说,我不记得我是否删除了我的系统红宝石。它不再在 usr/bin/ruby 下。我在 Mac OSX 10.6 上。
  • 你会想要重新安装它,就像从 XCode/etc. 一样,或者如果它从来没有安装它(IIRC 它随它一起提供)。仅当将其替换为与使用它的 OS X 软件功能等效的东西时,才应将其删除。
  • 所以你是说我应该重新安装 XCode?​​span>
  • 可能;不太确定。你也许可以只安装 Ruby,我真的不记得了。

标签: ruby-on-rails ruby macos homebrew


【解决方案1】:

我得到了这个错误(差不多):

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: 错误的解释器: 没有这样的文件或目录 /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 为我工作。如果其他人遇到此问题,希望对您有所帮助。 :)


如果你得到错误

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

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

@TimCastelijns 的提示:

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

【讨论】:

  • 太棒了!修复了我更新到优胜美地后的问题。
  • 在运行 Yosemite 时,我得到的结果与 @scientiffic 相同
  • 此页面上有一条评论谈到将 /usr/local/Library/brew.rb 文件更改为:a)如上述答案中所述更新 ruby​​ 的版本 b)更改MACOS 检查使用 10 而不是 10.5(看起来 10.10 导致问题)我这样做了,进行了 brew 更新,现在一切似乎都很好。
  • 10.5 不起作用,因为相比之下,它高于 10.10(.1 vs .5)。我添加了一个检查 (and MACOS_VERSION != 10.10) 而不是从 10.5 降低到 10
  • 在 2018 年使用自制软件安装 fastlane 时仍然如此
【解决方案2】:

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

安装 Apple 开发工具包(Xcode 附带),它应该作为可选安装提供给您(或者您可以简单地从 Apple 下载它)。这将为您安装 Ruby 解释器。

如果您已经安装了 Xcode,这意味着正在发生以下情况之一:

  1. 您的 Ruby 安装已损坏
  2. 您有多个 Ruby 安装
  3. 您的安装配置不正确。

要确定这是否是第一种情况,您可以运行 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

如果这没有帮助,您可能想亲自动手并通过以下方式手动解决问题:

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

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

免责声明

非常感谢以下答案中的其他贡献者及其评论者。我没有抄袭,只是将答案汇总到一篇综合文章中以帮助他人。

【讨论】:

  • 但是我已经安装了 XCode,所以这应该不是问题。
  • 运行whereis ruby,看看你是否得到/usr/bin/ruby
  • 我无法运行 whereis ruby​​,然后它什么也做不了。我可以运行 which ruby​​ 然后它给我“/usr/local/bin/ruby”。
  • 好吧。 Homebrew 在/usr/bin/ruby 寻找它,而它实际上在/usr/local/bin/ruby。您所要做的就是在/usr/bin 上添加一个符号链接。这样做:sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
  • 好的。正如我所怀疑的那样,您已经遵循了这些指示而没有根据自己的情况进行调整。运行sudo rm -f /usr/bin/ruby ro 删除断开的链接,然后运行sudo ln -s /usr/local/bin/ruby /usr/bin/ruby 以建立指向您安装的Ruby 的正确链接。
【解决方案3】:

修复:

sudo gem install cocoapods

【讨论】:

    【解决方案4】:

    冒着过于简单化的风险,尝试运行

    gem install bundler
    

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

    【讨论】:

      【解决方案5】:

      发生这种情况是因为我需要更新 brew - 在更新版本中它已经使用 Current ruby​​

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

      这样就解决了问题

      【讨论】:

      • 我在上面的回答中添加了您的观点。感谢您的贡献。
      • 这对我有用,谢谢,我必须使用sudo 来拉取。
      • 你不应该使用 sudo,我认为 brew doctor 会在你运行后为你修复权限
      【解决方案6】:

      您需要更改 Ruby.Framework 的路径

      我用上面提到的命令解决了这个问题。

      1. brew install cocoapods --build-from-source

      2. brew link --overwrite cocoapods

      如果您有低于Xcode 11 的较低版本,则必须在使用上述命令之前将其删除。

      参考:Ruby Framework issue

      【讨论】:

        【解决方案7】:

        以上都不适合我,所以我继续浏览并找到了这个答案, https://stackoverflow.com/a/24225960/1359088 这确实为我解决了 brew 问题。他在步骤 1 中说安装 XCode 6 命令行工具,但没有说明如何安装;使用这个命令:

        xcode-select --install
        

        【讨论】:

          【解决方案8】:

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

          sudo gem install xcpretty
          

          重新启动 Xcode 并重新构建它对我有用。 希望对你有帮助!!!

          【讨论】:

          • 我不知道你为什么被否决,但你的回答对我有帮助,所以谢谢!
          【解决方案9】:

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

          sudo gem 安装 cocoapods

          【讨论】:

            【解决方案10】:

            在我的情况下,fastlane 似乎安装不正确,brew install fastlane 系统没有写入到 fastlane 的正确路径。我用alias fastlane=~/.fastlane/bin/fastlane修复了它

            【讨论】:

              【解决方案11】:

              我用上面提到的命令解决了这个问题。

              1.) 卸载您的 GEM。

              gem unistall GEM

              2.) 然后安装您的 GEM。

              sudo gem install GEM -n /usr/local/bin

              【讨论】:

                【解决方案12】:

                在升级的 MacOS 上使用 xcprettyxcpretty-travis-formatter 时出现 bad interpreter: No such file or directory 错误。

                解决它

                gem install xcpretty
                gem install xcpretty-travis-formatter
                

                这就是为什么我建议你重新安装失败的组件gem install <name>

                #For example error looks like
                /usr/local/bin/xcpretty-travis-formatter: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory
                
                #use
                gem install xcpretty-travis-formatter
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-09-18
                  • 2015-08-10
                  • 2010-09-10
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-07-30
                  相关资源
                  最近更新 更多