【问题标题】:Homebrew find installed packages which aren't dependencies of any other installed packageHomebrew 查找不依赖于任何其他已安装软件包的已安装软件包
【发布时间】:2020-04-12 20:25:00
【问题描述】:

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

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

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

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

我尝试使用它不起作用:

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

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

xargs 我做错了什么?

【问题讨论】:

    标签: homebrew xargs


    【解决方案1】:

    似乎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.
    

    【讨论】:

    • 很好,谢谢。我看到了leaves 的讨论,但没有意识到它是在自制软件中。仅供参考。关于 xargs 的问题部分,我只是在上面的 xargs 命令中添加了-n1,但这仍然没有如愿,一些额外的循环正在进行。
    【解决方案2】:
    brew autoremove --dry-run 
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-13
      • 2019-12-16
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      • 2017-01-29
      • 2017-05-26
      相关资源
      最近更新 更多