如何以编程方式获取Homebrew指定包的对应配方文件?
获取Homebrew实际使用的配方文件及来源Tap
1. 稳定获取配方文件路径
Homebrew 3.0+ 提供了brew formula命令,可直接输出指定包对应的、匹配brew install优先级的配方文件绝对路径,自动识别自定义tap:
brew formula "${name}"
示例:执行brew formula aalib会直接返回系统中优先级最高的aalib.rb文件路径,无论它来自homebrew-core还是自定义tap。
2. 获取配方文件内容
基于上面的路径,直接读取文件内容即可,无多余输出且接口稳定:
cat "$(brew formula "${name}")"
3. 获取配方来源的Tap
方法1:借助JSON输出(需jq工具)
通过brew info的JSON输出解析Tap信息,适合程序化处理:
brew info --json=v1 "${name}" | jq -r '.[0].tap'
需先安装jq:brew install jq,执行后会返回类似homebrew/core或自定义user/tap的Tap名称。
方法2:直接调用Homebrew Ruby API(无额外依赖)
利用Homebrew内置的Ruby接口,无需第三方工具,稳定性更高:
brew ruby -e "puts Formula['${name}'].tap"
内容的提问来源于stack exchange,提问作者umläute
相关产品推荐
相关产品推荐

