问题
在使用brew安装应用的时候,一直卡在这里
Downloading https://formulae.brew.sh/api/cask.jws.json采用如下方案
替换镜像
# 替换brew.git仓库
git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# 替换homebrew-core.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# 替换homebrew-cask.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
# 更新生效
brew update跳过检查
echo 'export HOMEBREW_NO_INSTALL_FROM_API=1' >> ~/.zshrc
echo 'export HOMEBREW_NO_AUTO_UPDATE=1' >> ~/.zshrc
source ~/.zshrcAPI 模式
Homebrew 3.6 以后,安装/搜索时默认会走 API 模式(Install From API)。
这个 cask.jws.json 文件,是 Homebrew Cask 元数据 的一个签名版 JSON 文件,包含了所有 Cask 包(图形化应用,比如 Chrome、VS Code、微信等)的:
- 名称
- 版本
- SHA256 校验值
- 安装方式(zip/dmg/pkg)
- 依赖信息
- jws(JSON Web Signature) 说明这个 JSON 是签过名的,Homebrew 会验证它的完整性和真实性。
作用
下载这个文件的目的:
- 快速获取软件元数据(无需克隆整个
homebrew-caskGit 仓库) - 确保内容安全(文件经过签名,防止篡改)
- 减少流量(相比几十 MB 的 git 仓库,这个 JSON 很小)
在 API 模式下,brew install --cask xxx 会:
- 先下载
cask.jws.json - 读取你要安装的 cask 元数据
- 再去下载软件包
跳过检查
跳过下载的方式是设置:
export HOMEBREW_NO_INSTALL_FROM_API=1效果:
- Homebrew 不再访问
formulae.brew.sh/api - 而是直接去 clone / pull 本地 Git 仓库的
homebrew-cask来读取元数据 - 结果是:首次更新会更慢(因为要拉取完整 Git 历史),但之后本地查找会很快
- 用
brew update会同步最新的 Git 仓库,以获取最新的包定义
优缺点
优点:
- 不依赖
formulae.brew.sh(解决你卡住的问题)。 - 镜像可加速(USTC/TUNA 镜像可同步 cask 仓库)。
缺点:
- Git 仓库更新量较大(
homebrew-cask几百 MB),更新速度依赖 Git 镜像质量。 - 没有 API 模式那么轻量。
- Homebrew 官方新功能(比如更快的搜索)部分依赖 API,跳过后某些命令可能退回旧实现,速度变慢。
总结
cask.jws.json是 Homebrew Cask API 模式的元数据文件,小而快,但国内访问容易卡。- 跳过它 不会影响安装功能,只是 Homebrew 不再用 API,而是回到本地仓库读取元数据。
- 在国内环境,配合 国内 Git 镜像,跳过它是一个非常常用的选择。