MacDesenvolvedores3 min de leitura

Como limpar caches Homebrew, npm, pip, Gradle, CocoaPods e Docker em um Mac

Gerenciadores de pacotes e ferramentas de desenvolvimento mantêm caches grandes. Aqui estão os comandos oficiais para limpar Homebrew, npm, Yarn, pnpm, pip, uv, Gradle, CocoaPods, Dart, Cargo e Docker com segurança.

Atualizado · Escrito pela equipe spacerecover

Cada gerenciador de pacotes mantém um cache local do que baixa e a maioria nunca o limpa por conta própria. Ao longo de alguns anos de projetos, esses caches podem facilmente atingir dezenas de gigabytes. A boa notícia é que quase todos eles podem ser apagados com segurança, pois as ferramentas baixam novamente o que precisam.

Antes de começar: pare de executar compilações, instalações e servidores de desenvolvimento. Limpar um cache enquanto uma ferramenta o utiliza pode causar erros confusos.

Veja onde fica o espaço

Este comando somente leitura mostra o tamanho das pastas de cache comuns:

du -sh ~/Library/Caches/Homebrew ~/.npm ~/Library/pnpm ~/Library/Caches/pip ~/Library/Caches/uv ~/.gradle/caches ~/Library/Caches/CocoaPods ~/.pub-cache ~/.cargo/registry 2>/dev/null

Pastas que não existem são ignoradas.

Homebrew

O Homebrew mantém pacotes binários baixados (bottles) e versões antigas de fórmulas (formulae). Limpe-os com:

brew cleanup

Para remover também todos os downloads em cache, não apenas os antigos:

brew cleanup --prune=all

Execute brew cleanup -n primeiro para ver o que seria removido sem removê-lo.

npm, Yarn e pnpm

npm cache clean --force
yarn cache clean
pnpm store prune

npm cache verify verifica e limpa o cache sem limpar tudo. pnpm store prune remove pacotes não referenciados por nenhum projeto, o que é seguro para um armazenamento pnpm compartilhado entre projetos.

Pastas node_modules antigas

Cada projeto JavaScript tem seu próprio node_modules, geralmente centenas de megabytes. Para listá-los em uma pasta de projetos sem excluir nada:

find ~/code -name node_modules -type d -prune -exec du -sh {} + 2>/dev/null

Exclua node_modules em projetos nos quais você não está trabalhando ativamente. Executar npm install o traz de volta.

Python: pip e uv

pip cache purge
uv cache clean

uv cache prune é uma opção mais suave que remove apenas entradas não utilizadas. Os ambientes virtuais (pastas .venv) em projetos antigos também podem ser grandes e podem ser recriados a partir do seu arquivo de requisitos.

Gradle

O cache de dependência de Gradle reside em ~/.gradle/caches. Interrompa todos os daemons em execução e exclua o cache:

./gradlew --stop
rm -rf ~/.gradle/caches

Gradle baixa as dependências novamente na próxima compilação. Os usuários do Android Studio também podem remover plataformas antigas do Android SDK e imagens do sistema em Configurações > Idiomas e estruturas > Android SDK e emuladores antigos no Gerenciador de dispositivos.

CocoaPods

pod cache clean --all

Isso limpa os pods baixados. As pastas Pods e Podfile.lock dos seus projetos não são afetadas.

Dart e Flutter

dart pub cache clean

Isso remove tudo do cache do pub, incluindo ferramentas ativadas globalmente, que você precisará ativar novamente. Executar flutter pub get em um projeto busca seus pacotes novamente. flutter clean em um projeto remove sua saída de compilação.

Rust (Cargo)

Execute cargo clean em projetos nos quais você não está trabalhando para remover suas pastas target, que geralmente são o maior armazenamento Rust. O cache do registro em ~/.cargo/registry pode ser excluído e baixado novamente.

Docker

O Docker Desktop armazena imagens, contêineres, volumes e cache de compilação em uma única imagem de disco, para que seu armazenamento não diminua com a exclusão de arquivos no Finder.

  1. Veja o que está ocupando espaço:
   docker system df
  1. Remova contêineres parados, redes não utilizadas, imagens sem referência (dangling) e cache de compilação:
   docker system prune

Adicione -a para remover também todas as imagens não usadas por um contêiner. Não adicione --volumes a menos que tenha certeza: os volumes contêm dados persistentes, como bancos de dados locais.

  1. Em Docker Desktop > Configurações > Recursos, você pode ver e limitar o tamanho da imagem do disco.

Xcode

DerivedData do Xcode, arquivos de distribuição (archives), arquivos de suporte de dispositivo e simuladores são abordados em nosso guia separado para limpar o armazenamento Xcode.

Perguntas frequentes

É seguro limpar o cache npm?

Sim. npm baixa pacotes novamente conforme necessário. Interrompa qualquer instalação em execução primeiro. Seus projetos e suas pastas node_modules não são afetados.

docker system prune apaga meus dados?

Por padrão, ele remove contêineres parados, redes não utilizadas, imagens sem referência (dangling) e cache de compilação, mas não volumes. Os volumes, que geralmente contêm bancos de dados, só serão removidos se você adicionar --volumes.

Posso excluir ~/.gradle/caches?

Sim, depois de parar os daemons Gradle. Gradle baixa dependências novamente na próxima compilação, o que leva tempo e largura de banda.

Quer que façamos isso por você?

spacerecover encontra Homebrew, npm, Gradle, CocoaPods, pip, uv, pacote Swift e caches Dart, além de saída de compilação Xcode e Docker e explica o que cada um reconstrói. Ele nunca executa comandos gerais de remoção e os projetos em suas pastas de código são protegidos.

Fontes e leituras adicionais

CONTINUE