Homebrew 找到不依赖于任何其他已安装包的已安装包

Homebrew find installed packages which aren't dependencies of any other installed package

以前我用 homebrew 安装了一些东西,这些东西有依赖项,当我删除包本身时我忽略了删除它们(当然是 homebrew does not do this automatically for you,这是有充分理由的)。

现在,为了稍微整理一下我的系统,我想识别所有已安装的 brew 包,这些包不需要任何其他包,这样我就可以手动识别那些我想保留的和不想要的。那些我很乐意删除。

要手动执行此操作,我会执行 brew list,然后,在输出的每个项目上,我会执行 brew uses --installed <name-of-package-from-brew-list>,以检查每个包是否被任何人使用other installed package (然后,如果答案是 none,如果我对它最初安装的原因感到好奇,我也可以做 brew uses <name-of-installed-package> 这可能会告诉我我安装了哪个包过去使用过,但后来卸载了,实际上最初安装了它).

这一切都是非常手动的,我想知道 xargs 是否可以提供帮助。

我尝试使用它无效:

brew list | xargs brew uses --installed > test.txt

我从该命令中没有得到任何输出,一个空白文件(但该命令需要几秒钟才能到达 运行)。

我在 xargs 方面做错了什么?

似乎 brew leaves 适合您的用例?

% brew leaves --help
Usage: brew leaves

List installed formulae that are not dependencies of another installed formula.

来自问题:

brew list | xargs brew uses --installed > test.txt

此命令应拼写为 xargs -n1,因为 brew uses 与多个公式的作用完全不同:

% brew uses --help
Usage: brew uses [options] formula

Show formulae that specify formula as a dependency. When given multiple
formula arguments, show the intersection of formulae that use formula. By
default, uses shows all formulae that specify formula as a required or
recommended dependency for their stable builds.
brew autoremove --dry-run 

删除所有仅作为另一个公式的依赖项安装且现在不再需要的包。使用 --dry-run 标志,您可以干燥 运行 它并仅获取所有软件包的列表而无需卸载任何东西。