如何删除过时的Homebrew软件包安装版本?


Answers:


332

清理brew cleanup)命令将删除过时的已安装的包的版本。要影响特定的包装/配方,您可以提供如下配方名称:brew cleanup $FORMULA。要模拟清理,即查看要删除的内容,可以使用-n选项:brew cleanup -n


30
备案:brew cleanup只清除过时的包版本,如果您已经安装了最新版本,所以首先brew upgrade然后brew cleanup

38
哇靠。这给了我3G以上的收益。谁知道……
Alper

38
This operation has freed approximately 17.2GB of disk space.
fvgs

11
我的天啊!我刚获得超过12GB的空间。呜呜!
理查德·赫特

3
哇,一年的价值upgradecleanup带给我17.6GB的未使用软件!(使用进行检查brew cleanup -n,不会删除任何内容。)感谢您的回答。:)
Erik

79

@ aknuds1是正确的,brew cleanup所以我要补充一点,我在我的别名中进行~/.profile所有与酿造相关的清理,包括桶更新/清理

alias brewski='brew update && brew upgrade && brew cleanup; brew doctor'

最后,brew doctor确保所有包都正确地符号链接,例如,awscli在常规上似乎对此有问题,因此我必须不断取消链接/重新链接。希望这可以帮助。


编辑:正如评论中向我指出的那样,brew cask功能已合并到自制内核中。这些命令也引发错误,因此对的引用brew cask已被删除。

EDIT2:在我每天运行此程序时,我今天注意到以下评论。我已经相应地更新了命令

    Warning: We decided to not change the behaviour of `brew upgrade` so
    `brew upgrade --all` is equivalent to `brew upgrade` without any other
    arguments (so the `--all` is a no-op and can be removed).

3
您无需再做任何brew upgrade brew-cask操作,因为此拉取请求 brew update现在也将自动升级自制酒桶。
Lantrix

1
@Lantrix感谢您的更新。我已经编辑了答案以反映此更改。
SaxDaddy

2
brew upgrade --cleanup将在安装新软件包时删除旧软件包。
Zenexer

我不建议使用brew upgrade,而是通过使用brew outdated每个软件包然后再对其进行升级brew upgrade PACKAGE来控制更多
Pedro Luz

作为brew upgrade升级所有软件包的单个命令,它非常适合自动化。(可选)您可以pin打包要保留的版本并立即升级其余版本。
SaxDaddy

34

仅作记录,您可以使用--cleanup标志来清除即将升级的软件包的过时版本:

brew upgrade --cleanup <package_name>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.