无法更新或升级Homebrew。

54

我无法再运行brew upgrade或者brew update了:两者都会中途停止。

Error: homebrew-core is a shallow clone. To `brew update` first run:
  git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core" fetch --unshallow

如果我按照这个建议运行 git ... --unshallow 然后尝试 brew update 或者 brew upgrade,我仍然会得到相同的错误信息。

如果我再次尝试该命令(也许第一次没有做对?),我会得到以下错误:

fatal: --unshallow on a complete repository does not make sense

如何绕过此错误消息,以在没有错误的情况下运行brew upgradebrew update?


HOMEBREW_VERSION: 2.6.0-82-gde1afcb
ORIGIN: https://github.com/Homebrew/brew.git
HEAD: de1afcbfc58fb3cd5779bd8fbb6b9995700dda4c
Last commit: 30 hours ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: a7c63b0f7f7ae416a2f961b263155281759ac3a7
Core tap last commit: 29 hours ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CASK_OPTS: []
HOMEBREW_DISPLAY: /private/tmp/com.apple.launchd.FwPJPzeLfq/org.macosforge.xquartz:0
HOMEBREW_EDITOR: /usr/local/bin/bbedit
HOMEBREW_MAKE_JOBS: 4
HOMEBREW_NO_ANALYTICS: set
HOMEBREW_NO_EMOJI: set
Homebrew Ruby: 2.6.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: quad-core 64-bit haswell
Clang: 12.0 build 1200
Git: 2.29.2 => /usr/local/bin/git
Curl: 7.64.1 => /usr/bin/curl
Java: 1.8.0_172
macOS: 10.15.7-x86_64
CLT: 12.0.32.27
Xcode: 12.2
XQuartz: 2.7.11 => /opt/X11
4个回答

72

它要求你同时使用以下命令取消浅层克隆 homebrew-core homebrew-cask

git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core" fetch --unshallow
git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask" fetch --unshallow

1
它解决了我的问题。现在'bew upgrade && brew upgrade --cask'可以正常工作了。谢谢。 - frekele
1
在我的情况下,只有第一个命令被请求以获取brew update。 - Andrea Leganza
1
当我尝试运行 git homebrew-core 命令时,出现以下错误:fatal: the remote end hung up unexpectedly fatal: protocol error: bad pack header 有什么想法吗? - Ricardo Sanchez
可能是您的连接出了问题,所以请重新运行命令。如果问题仍然存在,请尝试使用 brew update-reset 命令。 - Eric3
1
@RicardoSanchez 这些仓库非常大,我也遇到了同样的问题。在 git 命令后加上 verbose 参数(-v),你应该会在一段时间后看到一些进展。git -C "/path/to/repo" fetch --unshallow -v - Cesar Zapata
显示剩余3条评论

58

直到我做了以下的事情,才让一切开始顺利:

cd /usr/local/Homebrew/Library/Taps/homebrew/
rm -rf homebrew-core
git clone https://github.com/Homebrew/homebrew-core.git

注意:对于基于 ARM 的 Mac,Homebrew Taps 现在位于:/opt/homebrew/Library/Taps/homebrew


6
fetch --unshallow 会卡住,这个方法对我有效。 - ir2pid

3
似乎Homebrew政策发生了变化,不再进行浅拷贝。
正确的答案是unshallow,如Eric3答案所述,或重新安装,这将产生一个非浅拷贝/常规库的副本。

0

这对我有用。

git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core" fetch --unshallow
git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask" fetch --unshallow
remote: Enumerating objects: 561296, done.
remote: Counting objects: 100% (561255/561255), done.
remote: Compressing objects: 100% (200847/200847), done.
remote: Total 552295 (delta 355423), reused 545449 (delta 348597), pack-reused 0
Receiving objects: 100% (552295/552295), 214.42 MiB | 2.60 MiB/s, done.
Resolving deltas: 100% (355423/355423), completed with 4915 local objects.
From https://github.com/Homebrew/homebrew-core
   09e19b5c825..003302f81db master     -> origin/master
remote: Enumerating objects: 180904, done.
remote: Counting objects: 100% (166460/166460), done.
remote: Compressing objects: 100% (47394/47394), done.
remote: Total 155334 (delta 116608), reused 146431 (delta 107784), pack-reused 0
Receiving objects: 100% (155334/155334), 73.84 MiB | 4.87 MiB/s, done.
Resolving deltas: 100% (116608/116608), completed with 6054 local objects.
From https://github.com/Homebrew/homebrew-cask

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