12  Gestión de Homebrew

Homebrew es más que un simple instalador de paquetes - es un ecosistema completo que requiere mantenimiento y gestión adecuada. Esta sección cubre las mejores prácticas para mantener tu instalación de Homebrew funcionando de manera óptima.

12.1 Comandos esenciales de Homebrew

12.1.1 Instalación y desinstalación

# Instalar un paquete
brew install nombre-del-paquete

# Instalar una versión específica
brew install nombre-del-paquete@version

# Desinstalar un paquete
brew uninstall nombre-del-paquete

# Desinstalar completamente incluyendo dependencias no utilizadas
brew uninstall --zap nombre-del-paquete

12.1.2 Búsqueda y exploración

# Buscar paquetes disponibles
brew search término-de-búsqueda

# Información detallada de un paquete
brew info nombre-del-paquete

# Listar todos los paquetes instalados
brew list

# Listar solo las fórmulas principales (sin dependencias)
brew leaves

12.1.3 Mantenimiento y limpieza

# Actualizar Homebrew y todos los paquetes
brew update && brew upgrade

# Actualizar solo Homebrew (sin actualizar paquetes)
brew update

# Actualizar un paquete específico
brew upgrade nombre-del-paquete

# Limpiar cachés y archivos temporales
brew cleanup

# Limpiar archivos específicos de un paquete
brew cleanup nombre-del-paquete

# Ver qué se va a limpiar sin ejecutar
brew cleanup --dry-run

12.1.4 Diagnóstico y resolución de problemas

# Verificar la instalación de Homebrew
brew doctor

# Verificar la integridad de los paquetes instalados
brew audit --installed

# Reinstalar un paquete problemático
brew reinstall nombre-del-paquete

# Ver dependencias de un paquete
brew deps nombre-del-paquete

# Ver qué paquetes dependen de uno específico
brew uses nombre-del-paquete --installed

12.2 Gestión de fórmulas obsoletas

Con el tiempo, algunas fórmulas pueden volverse obsoletas o ser reemplazadas por alternativas mejores. Es importante mantener el sistema actualizado.

12.2.1 Identificar paquetes obsoletos

# Ver fórmulas obsoletas instaladas
brew list --versions | grep -E "(deprecated|obsolete)"

# Verificar el estado de un paquete específico
brew info nombre-del-paquete | grep -E "(deprecated|obsolete|unmaintained)"

12.2.2 Proceso de migración recomendado

  1. Identificar la alternativa recomendada
  2. Instalar la nueva herramienta
  3. Probar la funcionalidad
  4. Migrar configuraciones si es necesario
  5. Desinstalar la versión obsoleta
  6. Limpiar archivos residuales

Ejemplo práctico:

# 1. Verificar estado actual
brew info herramienta-obsoleta

# 2. Instalar alternativa
brew install nueva-herramienta

# 3. Probar funcionalidad
nueva-herramienta --version

# 4. Desinstalar obsoleta
brew uninstall herramienta-obsoleta

# 5. Limpiar sistema
brew cleanup

12.3 Configuración avanzada

12.3.1 Taps (repositorios adicionales)

# Agregar un tap
brew tap usuario/repositorio

# Listar taps instalados
brew tap

# Eliminar un tap
brew untap usuario/repositorio

12.3.2 Servicios (daemons)

# Listar servicios disponibles
brew services list

# Iniciar un servicio
brew services start nombre-del-servicio

# Parar un servicio
brew services stop nombre-del-servicio

# Reiniciar un servicio
brew services restart nombre-del-servicio

# Limpiar servicios rotos
brew services cleanup

12.3.3 Variables de entorno importantes

# Directorio de instalación de Homebrew
echo $HOMEBREW_PREFIX

# Directorio de cachés
echo $HOMEBREW_CACHE

# Configurar directorio de caché personalizado
export HOMEBREW_CACHE=/path/to/custom/cache

12.4 Mejores prácticas

12.4.1 Mantenimiento regular

#!/bin/bash
# Script de mantenimiento semanal de Homebrew

echo "🔄 Actualizando Homebrew..."
brew update

echo "📦 Actualizando paquetes instalados..."
brew upgrade

echo "🧹 Limpiando archivos temporales..."
brew cleanup

echo "🩺 Verificando integridad del sistema..."
brew doctor

echo "✅ Mantenimiento completado"

12.4.2 Backup de paquetes instalados

# Crear lista de paquetes instalados
brew leaves > ~/homebrew-packages.txt

# Restaurar desde backup
cat ~/homebrew-packages.txt | xargs brew install

12.4.3 Configuración de aliases útiles

# Agregar a ~/.zshrc o ~/.bashrc
alias brewup='brew update && brew upgrade && brew cleanup'
alias brewdoc='brew doctor'
alias brewinfo='brew info'
alias brewsearch='brew search'
alias brewlist='brew leaves'

12.5 Troubleshooting común

12.5.1 Problemas de permisos

# Reparar permisos
sudo chown -R $(whoami) $(brew --prefix)/*

# Reinstalar Homebrew si es necesario
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

12.5.2 Problemas de dependencias

# Forzar reinstalación de dependencias
brew reinstall $(brew deps nombre-del-paquete)

# Verificar dependencias rotas
brew missing

12.5.3 Limpieza profunda

# Eliminar todas las versiones antiguas
brew cleanup --prune=all

# Eliminar caché completo
rm -rf $(brew --cache)

# Reconstruir base de datos
brew update-reset

12.6 Monitoreo y estadísticas

12.6.1 Información del sistema

# Tamaño total de la instalación
du -sh $(brew --prefix)

# Número de paquetes instalados
brew list | wc -l

# Espacio usado por cachés
du -sh $(brew --cache)

# Últimas actualizaciones
brew log --oneline -10

12.6.2 Análisis de uso

# Paquetes más grandes instalados
brew list --formula | xargs -n1 -I{} sh -c 'echo $(brew --prefix {}): $(du -sh $(brew --prefix {}) 2>/dev/null | cut -f1)' | sort -hr | head -10

# Dependencias más utilizadas
brew uses --installed --recursive | sort | uniq -c | sort -nr | head -10

Recordatorio importante

Siempre realiza un backup de tus configuraciones importantes antes de realizar cambios mayores en tu instalación de Homebrew. El comando brew doctor es tu mejor amigo para diagnosticar problemas.