能否无需回滚Git历史直接安装Tap中指定版本的Homebrew Formula?
无需回滚Tap Git历史安装旧版本Formula的方法
以下几种方法可直接安装Tap中的旧版本Formula,无需回滚整个Tap的Git历史:
方法1:直接安装旧版本Formula的Raw文件
找到Tap仓库中对应旧版本Formula的原始文件链接,直接用brew install命令安装:
brew install https://raw.githubusercontent.com/<tap-owner>/<tap-repo>/<commit-hash>/Formula/<formula-name>.rb
操作步骤:
- 打开Tap的Git仓库页面,找到目标Formula文件
- 点击文件上方的「History」,定位到对应版本的提交记录
- 进入该提交的文件页面,点击「View raw」复制链接,替换到上述命令中即可
方法2:用brew extract提取旧版本到自定义Tap
如果目标版本曾出现在Tap的历史记录中,可通过brew extract将旧版本Formula提取到自己的自定义Tap,之后就能用@版本号语法安装:
- 首次使用需创建自定义Tap:
brew tap-new your-username/your-custom-tap
- 提取指定版本的Formula到自定义Tap:
brew extract --version=1.5.1 <formula-name> your-username/your-custom-tap
- 安装提取后的旧版本:
brew install your-username/your-custom-tap/<formula-name>@1.5.1
这种方法的优势是后续可重复通过@版本号安装,无需重复操作。
方法3:临时修改本地Formula文件安装
临时修改Tap本地目录中的Formula文件为旧版本内容,完成安装后再恢复原文件:
- 进入本地Tap的Formula目录:
cd "$(brew --repo <tap-owner>/<tap-repo>)/Formula"
- 备份原Formula文件:
cp <formula-name>.rb <formula-name>.rb.backup
- 编辑
<formula-name>.rb,将版本号、下载URL、校验哈希等信息替换为旧版本的对应值(可从Tap的Git历史中获取旧版本内容) - 安装修改后的Formula:
brew install ./<formula-name>.rb
- 安装完成后恢复原文件:
mv <formula-name>.rb.backup <formula-name>.rb
注意:此方法为临时操作,后续执行brew update会覆盖修改的文件,适合一次性安装需求。
内容的提问来源于stack exchange,提问作者merlin2011
相关产品推荐
相关产品推荐

