首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >卸载/删除Homebrew软件包及其所有依赖项

卸载/删除Homebrew软件包及其所有依赖项
EN

Stack Overflow用户
提问于 2011-09-07 00:38:25
回答 12查看 419.5K关注 0票数 421

我有一个Homebrew公式,我希望卸载/删除它的所有依赖项,跳过其他包依赖的包(也称为包管理器术语中的Cascading package removal )。

例如,卸载依赖于软件包bc的package a,其中package d也依赖于package c。结果应该会卸载ab,跳过c

我该怎么做呢?

必须有一种方法来卸载一个包,而不会留下不必要的垃圾。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2011-09-07 19:44:06

编辑:

看起来像是the issue is now solved using an external command called brew rmdeps or brew rmtree

要安装和使用,请发出以下命令:

代码语言:javascript
复制
$ brew tap beeftornado/rmtree
$ brew rmtree <package>

有关更多信息和讨论,请参阅上面的链接。

编辑请参阅https://stackoverflow.com/a/66719581/160968中的新命令brew autoremove

原始答案:

目前看来,还没有简单的方法来实现这一点。

然而,我filed an issue on Homebrew's GitHub page,有人建议了一个临时的解决方案,直到他们添加一个独占的命令来解决这个问题。

有一个名为brew leavesexternal command,它打印所有不依赖于其他包的包。

如果对brew leavesbrew deps <package>的输出执行逻辑,可能只会得到孤立依赖包的列表,之后可以手动卸载这些依赖包。把它和xargs结合起来,我想你会得到你需要的东西(未经测试,不要指望这个)。

编辑:有人刚刚提出了一个非常类似的解决方案,用join代替xargs

代码语言:javascript
复制
brew rm FORMULA
brew rm $(join <(brew leaves) <(brew deps FORMULA))

有关更多信息,请参阅comment on the issue mentioned above

票数 464
EN

Stack Overflow用户

发布于 2021-03-20 16:26:17

到2020年底,Homebrew团队添加了一个简单的命令 brew autoremove 来删除所有未使用的依赖项。

首先,卸载包:

brew uninstall <package>

然后,删除所有未使用的依赖项:

brew autoremove

票数 109
EN

Stack Overflow用户

发布于 2017-05-16 21:59:23

brew rmtree doesn't work at all.从这个问题的链接中,我找到了rmrec,它实际上是有效的。天知道为什么brew没有本机命令。

代码语言:javascript
复制
brew tap ggpeti/rmrec
brew rmrec pkgname
票数 43
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7323261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档