让 Homebrew 列出所有包依赖项的简单方法

Easy way to have Homebrew list all package dependencies

是否有命令 brew 显示任何给定软件包的所有已安装或可选依赖项?查看哪些安装包本身是其他包的依赖项也会很有帮助。

您可以使用类似的信息命令。

brew info ffmpeg

它将显示公式的信息和依赖关系。此外,它还显示是否已安装此软件包,并在其名称后打勾。

对于所有包:

brew deps --tree --installed

仅限一包(例):

brew deps --tree --installed vim

感谢 rob-kovacs 建议添加 --tree

有关详细信息,请参阅这篇有用的文章:https://blog.jpalardy.com/posts/untangling-your-homebrew-dependencies/ 特别是如果您有兴趣创建依赖关系树图。

我发现 brew deps --tree 开关也非常有助于仅在命令行中可视化依赖关系。来自官方文档:

brew deps --tree [--1] [filters] [--annotate] (formulae|--installed):
Show dependencies as a tree. When given multiple formula arguments, output
individual trees for every formula.

示例 1:

brew deps --tree fontconfig

输出1:

fontconfig
└── freetype
    └── libpng

示例 2:

brew deps --tree --1 fontconfig

输出2:

fontconfig
└── freetype

还有更多开关解释为:

brew help deps

这是一个命令,它将列出不依赖于任何其他公式(叶)的所有公式,并为每个公式列出其所有依赖项。

示例输出行:

awscli: gdbm readline sqlite tcl-tk xz

命令:

brew leaves | xargs brew deps --installed --for-each | sed "s/^.*:/$(tput setaf 4)&$(tput sgr0)/"

命令:

brew deps --include-build --tree $(brew leaves)

方便的别名:

alias brewdeps="brew leaves | xargs brew deps --include-build --tree"

这样您将分层打印依赖项并且每个包只打印一次。