AskCleanAskClean

Cómo limpiar la caché y las versiones antiguas de Homebrew en el Mac

Equipo de AskClean · Actualizado 2026-08-05

Localiza la caché de descargas con brew --cache y ejecuta brew cleanup -n antes de cambiar nada. Un brew cleanup normal elimina bloqueos obsoletos, descargas antiguas y versiones anteriores de fórmulas; además, salvo que HOMEBREW_NO_AUTOREMOVE esté definido, puede desinstalar automáticamente fórmulas instaladas como dependencias que ya no se necesitan. brew cleanup --prune=all borra archivos de caché sin importar su antigüedad. Revisa todos los candidatos y acepta el coste de descarga, reinstalación o reversión antes de actuar.

Un estante iluminado con botellas y cajas archivadas, mientras varias botellas aparecen separadas en un contenedor de reciclaje
Distingue, por un lado, las descargas recuperables y las versiones antiguas y, por otro, las herramientas actuales y su configuración, que deben conservarse.

Distingue descargas, kegs antiguos y herramientas actuales

Homebrew guarda bottles, archivos fuente y descargas de casks normalmente en ~/Library/Caches/Homebrew; HOMEBREW_CACHE puede cambiar la ruta. Las fórmulas instaladas viven como kegs versionados en Cellar, los casks en Caskroom y los enlaces activos bajo el prefijo. Descubre las ubicaciones reales con brew --cache, brew --cellar, brew --caskroom y brew --prefix. Cellar, Caskroom, el prefijo, Brewfile, dotfiles, servicios, bases de datos y proyectos no son una caché que se pueda borrar en bloque.

Previsualiza y revisa cada candidato

Mide la caché activa con du -sh "$(brew --cache)" y ejecuta brew cleanup -n. La simulación muestra descargas obsoletas, versiones antiguas de fórmulas instaladas y las dependencias que Homebrew proponga desinstalar automáticamente. Contrasta las herramientas importantes con brew list --versions y comprueba si un script o una reversión aún necesitan un keg antiguo. La simulación no es una copia de seguridad: lo eliminado puede no pasar por la Papelera ni seguir disponible después en la misma versión.

  1. Ejecuta brew --cache y mide la caché de descargas obtenida con du -sh "$(brew --cache)".
  2. Ejecuta brew cleanup -n y revisa cada descarga, cada versión antigua y cada dependencia propuesta para desinstalación automática.
  3. Contrasta las versiones necesarias con brew list --versions y confirma la red, el proxy y la disponibilidad para futuras descargas.
  4. Usa brew cleanup para el mantenimiento normal tras aceptar todos los candidatos; si quieres excluir la retirada automática de dependencias, ejecuta HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n y después HOMEBREW_NO_AUTOREMOVE=1 brew cleanup. Reserva brew cleanup --prune=all para después de revisar brew cleanup -n --prune=all.
  5. Mide otra vez la caché, ejecuta brew cleanup -n y brew list --versions, y prueba al menos una herramienta importante instalada con Homebrew.

brew cleanup -n es solo una simulación. Eliminar un keg antiguo puede romper una reversión o una ruta de script no documentadas, y quizá no sea posible recuperar exactamente esa versión.

Elige el comando cleanup de menor alcance

Después de revisar la simulación, usa brew cleanup para el mantenimiento normal basado en antigüedad. Si quieres decidir por separado sobre las dependencias sin uso, ejecuta primero HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n y después HOMEBREW_NO_AUTOREMOVE=1 brew cleanup. Para eliminar todos los archivos de caché sin límite de edad, previsualiza brew cleanup -n --prune=all antes de ejecutar brew cleanup --prune=all. Las instalaciones futuras tendrán que volver a descargar bottles, archivos o instaladores; cleanup también puede retirar kegs antiguos y dificultar una reversión exacta.

Separa autoremove, datos propios y verificación

brew autoremove no limpia caché: desinstala fórmulas que Homebrew considera dependencias ya innecesarias. Sin embargo, brew cleanup puede activar esa retirada automáticamente salvo que HOMEBREW_NO_AUTOREMOVE esté definido. Si quieres tomar la decisión aparte, usa esa variable tanto en la simulación como en el cleanup real y después revisa brew autoremove --dry-run, porque un script propio puede usar una herramienta aunque no figure en el grafo de dependencias. Tras cleanup, mide de nuevo, ejecuta brew cleanup -n y brew list --versions, y prueba comandos importantes. AskClean puede mostrar la caché completa; para decidir por paquete y keg, la simulación de Homebrew es la referencia.

Límites de borrado y coste de recuperación

Previsualiza las descargas y las versiones antiguas de fórmulas con brew cleanup, limpia solo lo necesario y protege las herramientas, dependencias y configuraciones actuales.

Elemento o acciónDónde comprobarConsecuencia
Distingue descargas, kegs antiguos y herramientas actualesbrew --cacheHomebrew guarda bottles, archivos fuente y descargas de casks normalmente en ~/Library/Caches/Homebrew; HOMEBREW_CACHE puede cambiar la ruta. Las fórmulas instaladas viven como kegs versionados en Cellar, los casks en Caskroom y los enlaces activos bajo el prefijo. Descubre las ubicaciones reales con brew --cache, brew --cellar, brew --caskroom y brew --prefix. Cellar, Caskroom, el prefijo, Brewfile, dotfiles, servicios, bases de datos y proyectos no son una caché que se pueda borrar en bloque.
Previsualiza y revisa cada candidatobrew cleanup -nMide la caché activa con du -sh "$(brew --cache)" y ejecuta brew cleanup -n. La simulación muestra descargas obsoletas, versiones antiguas de fórmulas instaladas y las dependencias que Homebrew proponga desinstalar automáticamente. Contrasta las herramientas importantes con brew list --versions y comprueba si un script o una reversión aún necesitan un keg antiguo. La simulación no es una copia de seguridad: lo eliminado puede no pasar por la Papelera ni seguir disponible después en la misma versión.
Elige el comando cleanup de menor alcancebrew cleanup / brew cleanup --prune=allDespués de revisar la simulación, usa brew cleanup para el mantenimiento normal basado en antigüedad. Si quieres decidir por separado sobre las dependencias sin uso, ejecuta primero HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n y después HOMEBREW_NO_AUTOREMOVE=1 brew cleanup. Para eliminar todos los archivos de caché sin límite de edad, previsualiza brew cleanup -n --prune=all antes de ejecutar brew cleanup --prune=all. Las instalaciones futuras tendrán que volver a descargar bottles, archivos o instaladores; cleanup también puede retirar kegs antiguos y dificultar una reversión exacta.
Separa autoremove, datos propios y verificaciónbrew autoremove --dry-run (no es una limpieza de caché)brew autoremove no limpia caché: desinstala fórmulas que Homebrew considera dependencias ya innecesarias. Sin embargo, brew cleanup puede activar esa retirada automáticamente salvo que HOMEBREW_NO_AUTOREMOVE esté definido. Si quieres tomar la decisión aparte, usa esa variable tanto en la simulación como en el cleanup real y después revisa brew autoremove --dry-run, porque un script propio puede usar una herramienta aunque no figure en el grafo de dependencias. Tras cleanup, mide de nuevo, ejecuta brew cleanup -n y brew list --versions, y prueba comandos importantes. AskClean puede mostrar la caché completa; para decidir por paquete y keg, la simulación de Homebrew es la referencia.

Preguntas frecuentes

¿Es seguro ejecutar brew cleanup en el Mac?

Es un comando oficial de Homebrew, pero además de descargas obsoletas elimina versiones antiguas y puede activar autoremove. Ejecuta siempre brew cleanup -n, conserva los kegs necesarios y usa HOMEBREW_NO_AUTOREMOVE=1 si quieres decidir aparte sobre las dependencias sin uso.

¿Qué elimina brew cleanup --prune=all?

Aplica cleanup con una política de caché sin límite de antigüedad. La limpieza normal también puede incluir bloqueos obsoletos y versiones antiguas de fórmulas. Consulta la lista exacta con brew cleanup -n --prune=all.

¿Debo ejecutar brew autoremove después?

No como un paso adicional automático. brew autoremove desinstala fórmulas instaladas como dependencias y no limpia la caché; brew cleanup puede activarlo salvo que HOMEBREW_NO_AUTOREMOVE esté definido. Para decidir aparte, usa esa variable durante cleanup y revisa después brew autoremove --dry-run.

Fuentes

Más guías sobre almacenamiento de desarrollo