如何更新Homebrew?

114

当我运行:

brew update

我收到了一条消息,说它在/usr/local/.git/中初始化了一个空存储库,然后我遇到了这个错误:

屏幕截图


4
如果您只是想快速解决这个问题,可以在您的shell中,在Homebrew目录根目录下(通常为/usr/local/),使用安装了Git的系统执行以下命令:git init; git fetch https://github.com/mxcl/homebrew.git master; git reset --hard FETCH_HEAD; brew update。注意不要更改原文意思。 - jmlane
3个回答

68
  • cd /usr/local
  • git status
  • 放弃所有更改(除非你实际上想要尝试提交到Homebrew - 你可能不想这样做)
  • 一直运行git status 直到它是干净的
  • brew update

11
不要丢弃更改,最好使用git stash命令来储存更改。在你完成更新后,运行git stash pop命令将会恢复你的自定义修改。 - kevnk
1
我确实这样做了,在 /usr/local 中隐藏了所有更改...但运行“brew update”仍然会在某些git文件上出现权限错误。我犯了一个错误,即执行“sudo brew update”,现在似乎已经破坏了我的安装,每个brew命令都会出现ruby错误。 - PandaWood
我也执行了sudo brew update,现在出现了你说的那些Ruby错误..现在该怎么办?:'( - Laurence
2
你可以尝试通过执行 sudo chown -R yourusername:admin /usr/local/.git 来修复它。 - sschueller
5
了解:也可能是 cd /usr/local/Homebrew - Fayaz
显示剩余3条评论

29

截至2021年,您只需使用brew update即可更新Homebrew本身。


%brew update 错误: homebrew-core是一个浅克隆。 homebrew-cask是一个浅克隆。 要"brew update", 首先运行: git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow 由于存储库的大尺寸, 这些命令可能需要几分钟才能运行. 由于Homebrew/homebrew-core和Home...的结构布局和流量更新浅克隆是一项非常昂贵的操作,因此GitHub要求做出了这个限制。 - 林东吴
不总是这样。默认安装必须在升级命令能够正常工作之前进行适应。例如,我需要运行以下两个命令:git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallowgit -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow才能运行 brew update 命令。 - Niall Mccormack

9

或者您可以通过重新安装 brew 来更新它。(我认为我这么做是因为 El Capitan 改变了一些东西)

注意:这是一种粗暴的方法,将删除通过 brew 安装的所有应用程序!

尝试重新安装 brew,它会告诉您如何卸载。

在最初撰写此文时进行卸载:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

编辑:截至2020年卸载的方法如下:

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

18
请注意,这个脚本会删除您通过 brew 安装的所有应用程序。 - nesimtunc
4
使用此方法重新安装brew似乎不会再删除已安装的应用程序。 - kas

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