homebrew卡在更新是因网络无法拉取github元数据,可临时或永久设置homebrew_no_auto_update=true跳过自动更新,再直接安装软件;若遇“no available formula”错误则需换源后手动update。

Mac上执行brew update后光标静止、无任何输出,终端长时间卡在==> Auto-updating Homebrew…或==> Updating Homebrew…状态,根本原因是Homebrew默认强制检查更新,而你的网络无法及时拉取GitHub远程仓库元数据,此时不需要重装或重启终端,只需临时绕过该机制即可继续安装软件。
立即中断并跳过自动更新
按 Ctrl + C 强制终止当前卡住的命令。
运行以下命令,让Homebrew跳过后续所有自动更新检查:
export HOMEBREW_NO_AUTO_UPDATE=true
这行命令只对当前终端会话生效。如果你希望永久跳过(比如日常开发中极少手动update,只专注装软件),把它写入shell配置文件:
先确认你用的是zsh还是bash:echo $SHELL。若输出/bin/zsh,执行:echo 'export HOMEBREW_NO_AUTO_UPDATE=true' >> ~/.zshrc && source ~/.zshrc;若输出/bin/bash,则改用~/.bash_profile。
跳过更新后直接安装软件
现在你可以直接运行安装命令,例如:brew install wget。
Homebrew将不再尝试先拉取最新formula索引,而是直接解析本地已有的缓存信息——只要之前成功update过一次,本地库就足以支撑绝大多数常用软件安装。
【注意】跳过更新后若遇到“No available formula with the name xxx”错误,说明本地缓存太旧,缺失该软件包定义,此时必须先执行一次有效update(换源后再试)。
临时禁用更新但保留单次手动更新能力
方法一:仅对单条安装命令跳过更新
在安装命令前加前缀:HOMEBREW_NO_AUTO_UPDATE=1 brew install node。这个环境变量只影响当前这一条命令,执行完自动失效,不影响其他操作。
方法二:用--no-upgrade参数配合install(部分版本支持)
某些Homebrew版本允许:brew install --no-upgrade node。它不会跳过update阶段,但能避免升级已存在软件,适合你只想装新包、不碰旧版本的场景。
方法三:彻底关闭update提示(不推荐长期使用)
执行:brew tap-pin homebrew/core。这会锁定core tap不被自动刷新,但可能引发formula版本陈旧或依赖冲突,仅作应急手段。
验证跳过是否生效
第一步:运行brew config | grep NO_AUTO_UPDATE。
第二步:观察输出是否为HOMEBREW_NO_AUTO_UPDATE: 1。
第三步:执行brew update——此时应立刻返回提示符,不再卡住,且输出中包含Skipping auto-update字样。











