Homebrew在MacOS Big Sur上失败了。

97

我从Mohave升级到Big Sur后发现homebrew不再工作。我使用以下命令安装了命令行工具

xcode-select --install

在运行brew list之后,我得到了以下错误

~ brew list
Traceback (most recent call last):
    11: from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `<main>'
    10: from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `require_relative'
     9: from /usr/local/Homebrew/Library/Homebrew/global.rb:37:in `<top (required)>'
     8: from /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     7: from /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     6: from /usr/local/Homebrew/Library/Homebrew/os.rb:3:in `<top (required)>'
     5: from /usr/local/Homebrew/Library/Homebrew/os.rb:21:in `<module:OS>'
     4: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:58:in `prerelease?'
     3: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:24:in `version'
     2: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:24:in `new'
     1: from /usr/local/Homebrew/Library/Homebrew/os/mac/version.rb:26:in `initialize'
/usr/local/Homebrew/Library/Homebrew/version.rb:368:in `initialize': Version value must be a string; got a NilClass () (TypeError)

我尝试删除文件夹/Library/Developer/CommandLineTools并安装Xcode 12.3 beta的命令行工具,但是我仍然遇到相同的错误。有没有办法让brew工作?


2
你应该运行 brew doctor,修复警告,然后再尝试。我没有任何问题。 - bfontaine
1
我面临了同样的错误。原因是安装的Homebrew版本太旧了。我运行了 cd /opt/homebrew; git fetch; git reset --hard origin/master (我的homebrew目录是/opt/homebrew)。对我来说效果很好。 - Yasuharu Nakano
尝试使用 sudo xcode-select -r 重置 xcode-select。 xcode-select -p 应该返回 /Applications/Xcode.app/Contents/Developer - sdayal
11个回答

175

你应该更新brew;

brew update-reset

可以了,警告信息已经消失了。 - Leonardo
1
我在 Big Sur 上执行了全新的安装而非更新,遇到了完全不同的错误信息,但更新重置命令对我起了作用。谢谢!以下是我的错误信息,希望能对其他人有所帮助:“error:非法 ref:refs/remotes/origin/master fatal: ambiguous argument 'refs/remotes/origin/master': unknown revision or path not in the working tree." - Mary Hamlin
7
在执行 brew upgrade 命令之前,我必须先执行这个操作。 - John
只用这个命令,而不需要brew upgrade,它对我有效。 - Jun
可能是最好的解决方案。在 macOS Monterey 预览版中也适用,我可以证明。使用此解决方案后,执行 brew update-reset - Roast Biter
显示剩余4条评论

101

我也遇到了同样的问题。尝试升级brew - 这对我解决了问题。

brew upgrade

1
我在 macOS Big Sur 上运行时遇到了一些错误,包括:文件所有权、文件权限、Xcode 过期。 - vsm
9
使用这个命令时我遇到了同样的错误。 - Searene

15

我用这个脚本(install.sh)重新安装了brew,解决了我的问题:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

那么:

brew --version

输出:

Homebrew 3.0.1
Homebrew/homebrew-core (git revision 47e5d; last commit 2021-02-14)

然后只需执行:xcode-select --install


10

升级Homebrew后

brew upgrade

我收到了以下消息:

Your Command Line Tools (CLT) does not support macOS 11.
It is either outdated or was modified.
Please update your Command Line Tools (CLT) or delete it if no updates are 
available.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

Alternatively, manually download them from:
  https://developer.apple.com/download/more/.

Error: An exception occurred within a child process:

根据说明,我运行了以下命令:

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install

并再次运行

brew upgrade

最终它(指某个技术或代码)运行成功了。


8

你应该更新Brew;

brew update-reset

它对我起作用了...brew升级对我不起作用。 - Dhruvam Gupta

6
如果您运行brew upgrade仍然遇到错误,也许您需要先运行brew update
我的经验是:
1. brew update
2. brew doctor
3. brew upgrade

1
警告:您正在使用macOS 11.0。 我们不支持此版本,因为它尚未得到支持。 某些公式将无法构建成功。 请创建拉取请求,而不是在Homebrew的GitHub、Twitter或任何其他官方渠道上寻求帮助。 您需要负责解决在运行此版本时遇到的任何问题。 - Takatjuta

4

我使用的是MacOS Big Sur操作系统,即使按照这个问题中的所有答案进行操作,依然无法解决问题。但有一件事情对我有效:

brew update-reset

3

我曾经遇到同样的问题,"brew update" 无法工作,"brew upgrade" 也无法工作,我尝试了以下方法:

brew update-reset

然后执行

brew upgrade

现在已经可以正常工作了。

谢谢,

H


1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

这对我有效


1
当我按照@andrmu的指示操作时,出现了一个错误,提示 Homebrew: Your CLT does not support macOS 11.0.。我必须先按照此问题中最佳答案的说明清除升级我的命令行工具,然后它才能正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接