Como limpar o cache e as versões antigas do Homebrew no Mac
Equipe AskClean · Atualizado 2026-08-05
Localize o cache de downloads com brew --cache e execute brew cleanup -n antes de alterar qualquer coisa. Um brew cleanup normal remove arquivos de bloqueio obsoletos, downloads desatualizados e versões anteriores de fórmulas. Nas versões atuais, uma limpeza global também pode executar autoremove automaticamente, a menos que HOMEBREW_NO_AUTOREMOVE esteja definido. brew cleanup --prune=all apaga arquivos do cache independentemente da idade. Revise kegs antigos e dependências candidatas ao autoremove e aceite o custo de novos downloads ou de perder um rollback antes de agir.

Separe downloads, kegs antigos e ferramentas atuais
O Homebrew normalmente guarda bottles, arquivos-fonte e downloads de casks em ~/Library/Caches/Homebrew; HOMEBREW_CACHE pode mudar esse caminho. As fórmulas instaladas ficam como kegs versionados em Cellar, os casks em Caskroom e os links ativos sob o prefixo. Descubra os locais reais com brew --cache, brew --cellar, brew --caskroom e brew --prefix. Cellar, Caskroom, o prefixo, Brewfile, dotfiles, serviços, bancos de dados e projetos não são cache para exclusão em massa.
Veja a prévia e revise cada candidato
Meça o cache ativo com du -sh "$(brew --cache)" e execute brew cleanup -n. A simulação mostra downloads obsoletos, versões antigas de fórmulas instaladas e, nas versões atuais, dependências que seriam removidas automaticamente. Compare as ferramentas importantes com brew list --versions e verifique se algum script ou rollback ainda depende de um keg antigo ou de uma candidata ao autoremove. A simulação não é backup: o item removido pode não ir para a Lixeira nem continuar disponível depois na mesma versão.
- Execute brew --cache e meça o cache de downloads retornado com du -sh "$(brew --cache)".
- Execute brew cleanup -n e revise cada download, versão antiga e dependência marcada como candidata ao autoremove.
- Compare as versões necessárias com brew list --versions e confirme rede, proxy, disponibilidade para downloads futuros e uso direto das dependências candidatas.
- Execute brew cleanup somente depois de aceitar todos os candidatos; se quiser impedir o autoremove, prefixe a simulação e a execução com HOMEBREW_NO_AUTOREMOVE=1. Reserve --prune=all para uma simulação prévia com a mesma configuração.
- Meça novamente o cache, execute brew cleanup -n e brew list --versions e teste ao menos uma ferramenta importante instalada com Homebrew.
brew cleanup -n é apenas uma simulação. Use a mesma configuração de HOMEBREW_NO_AUTOREMOVE na prévia e na execução. Remover um keg antigo ou uma dependência usada diretamente por scripts pode quebrar o fluxo, e talvez não seja possível recuperar exatamente aquela versão.
Escolha o comando cleanup de menor alcance
Depois de revisar a simulação, use brew cleanup para a manutenção normal baseada na idade. Se quiser impedir que a limpeza global desinstale automaticamente dependências consideradas sem uso, aplique HOMEBREW_NO_AUTOREMOVE=1 tanto na simulação quanto no comando real. Para remover os arquivos abrangidos pela política do cache sem limite de idade, execute primeiro brew cleanup -n --prune=all e somente depois brew cleanup --prune=all, com o mesmo controle de autoremove. Instalações futuras precisarão baixar novamente bottles, arquivos ou instaladores; a remoção de kegs antigos também pode inviabilizar um rollback exato.
Separe autoremove, dados próprios e validação
Executado isoladamente, brew autoremove não limpa cache: ele desinstala fórmulas que o Homebrew considera dependências desnecessárias. Porém, uma execução global de brew cleanup também pode acionar essa etapa automaticamente. Para tomar essa decisão separadamente, use HOMEBREW_NO_AUTOREMOVE=1 no cleanup e depois avalie brew autoremove --dry-run, pois um script próprio pode usar uma ferramenta que não aparece no grafo de dependências. Após a limpeza, meça de novo, execute brew cleanup -n e brew list --versions e teste os comandos importantes.
Limites de exclusão e custo de recuperação
Veja uma prévia dos downloads e das versões antigas de fórmulas com brew cleanup, limpe somente o necessário e proteja ferramentas, dependências e configurações atuais.
| Item ou ação | Onde verificar | Consequência |
|---|---|---|
| Separe downloads, kegs antigos e ferramentas atuais | brew --cache | O Homebrew normalmente guarda bottles, arquivos-fonte e downloads de casks em ~/Library/Caches/Homebrew; HOMEBREW_CACHE pode mudar esse caminho. As fórmulas instaladas ficam como kegs versionados em Cellar, os casks em Caskroom e os links ativos sob o prefixo. Descubra os locais reais com brew --cache, brew --cellar, brew --caskroom e brew --prefix. Cellar, Caskroom, o prefixo, Brewfile, dotfiles, serviços, bancos de dados e projetos não são cache para exclusão em massa. |
| Veja a prévia e revise cada candidato | brew cleanup -n | Meça o cache ativo com du -sh "$(brew --cache)" e execute brew cleanup -n. A simulação mostra downloads obsoletos, versões antigas de fórmulas instaladas e, nas versões atuais, dependências que seriam removidas automaticamente. Compare as ferramentas importantes com brew list --versions e verifique se algum script ou rollback ainda depende de um keg antigo ou de uma candidata ao autoremove. A simulação não é backup: o item removido pode não ir para a Lixeira nem continuar disponível depois na mesma versão. |
| Escolha o comando cleanup de menor alcance | brew cleanup / brew cleanup --prune=all | Depois de revisar a simulação, use brew cleanup para a manutenção normal baseada na idade. Se quiser impedir que a limpeza global desinstale automaticamente dependências consideradas sem uso, aplique HOMEBREW_NO_AUTOREMOVE=1 tanto na simulação quanto no comando real. Para remover os arquivos abrangidos pela política do cache sem limite de idade, execute primeiro brew cleanup -n --prune=all e somente depois brew cleanup --prune=all, com o mesmo controle de autoremove. Instalações futuras precisarão baixar novamente bottles, arquivos ou instaladores; a remoção de kegs antigos também pode inviabilizar um rollback exato. |
| Separe autoremove, dados próprios e validação | brew cleanup -n / brew autoremove --dry-run / HOMEBREW_NO_AUTOREMOVE | Executado isoladamente, brew autoremove não limpa cache: ele desinstala fórmulas que o Homebrew considera dependências desnecessárias. Porém, uma execução global de brew cleanup também pode acionar essa etapa automaticamente. Para tomar essa decisão separadamente, use HOMEBREW_NO_AUTOREMOVE=1 no cleanup e depois avalie brew autoremove --dry-run, pois um script próprio pode usar uma ferramenta que não aparece no grafo de dependências. Após a limpeza, meça de novo, execute brew cleanup -n e brew list --versions e teste os comandos importantes. |
Perguntas frequentes
É seguro executar brew cleanup no Mac?
É um comando oficial do Homebrew, mas, além de downloads obsoletos e versões antigas de fórmulas, uma limpeza global pode acionar autoremove. Sempre execute brew cleanup -n primeiro, preserve os kegs e as dependências usados por scripts e defina HOMEBREW_NO_AUTOREMOVE=1 se quiser avaliar autoremove separadamente.
O que brew cleanup --prune=all apaga?
Aplica cleanup com uma política de cache sem limite de idade. A limpeza normal também pode incluir arquivos de bloqueio obsoletos, versões antigas de fórmulas e autoremove. Consulte a lista exata com brew cleanup -n --prune=all e use a mesma configuração de HOMEBREW_NO_AUTOREMOVE na execução.
Devo executar brew autoremove depois?
Não como uma etapa adicional automática. brew autoremove desinstala fórmulas consideradas dependências sem uso e não limpa o cache; brew cleanup global já pode acioná-lo. Para decidir à parte, use HOMEBREW_NO_AUTOREMOVE=1 durante cleanup e depois comece com brew autoremove --dry-run.
Fontes