无法安装自制Homebrew Formula,如何强制使用本地版本?
解决Homebrew优先使用本地Formula的问题
一、临时强制使用本地Formula安装
当你已经在本地创建/编辑好Formula文件后,直接指定文件路径执行安装,跳过远程拉取步骤:
brew install -s /full/path/to/your/formula-name@x.y.z.rb
如果Formula在Homebrew默认的本地Formula目录(可通过brew --repository homebrew/core查看路径),也可以使用相对路径。
二、永久方案:创建个人本地Tap(避免修改被覆盖)
这是最可靠的方式,把自定义Formula放在自己的Tap中,Homebrew会优先读取本地Tap的内容,不会被官方仓库的更新覆盖:
- 创建个人Tap(示例命名为
myformulas):
brew tap-new $USER/myformulas
- 将自定义Formula文件移动到该Tap的Formula目录:
mv /path/to/your/formula-name@x.y.z.rb $(brew --repository $USER/myformulas)/Formula/
- 后续直接安装即可,Homebrew会自动优先使用你本地Tap中的版本:
brew install -s formula-name@x.y.z
三、临时修改官方Formula的注意事项
如果你只是临时修改官方仓库的Formula,不想创建Tap,可在安装时添加--no-fetch参数,禁止Homebrew拉取远程版本覆盖本地修改:
brew install -s --no-fetch formula-name
但注意执行brew update时,官方仓库的同步仍会覆盖你本地的修改,所以长期修改建议用个人Tap方案。
问题原因说明
Homebrew默认会优先从官方homebrew-core仓库拉取Formula到本地缓存,即使你编辑了默认目录下的Formula,brew install时仍会检查远程仓库的版本,导致本地未上传的Formula触发404错误,或本地修改被远程版本覆盖。
内容的提问来源于stack exchange,提问作者icalastaid
相关产品推荐
相关产品推荐

