Homebrew

Gestor de paquetes macOS - instalar herramientas CLI y apps con un comando, gestionar dependencias automaticamente

TL;DR

Qué: El gestor de paquetes que faltaba para macOS (y Linux).

Por qué: Instala software con un comando, gestiona dependencias automáticamente.

Quick Start

Instalar Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Añadir al PATH (Mac Apple Silicon):

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Verificar instalación:

brew --version

Instalar un paquete:

brew install wget
brew install git
brew install node

Instalar apps GUI (Casks):

brew install --cask visual-studio-code
brew install --cask google-chrome
brew install --cask docker

Cheatsheet

ComandoDescripción
brew install pkgInstalar un paquete
brew uninstall pkgEliminar un paquete
brew upgradeActualizar todos los paquetes
brew upgrade pkgActualizar paquete específico
brew updateActualizar Homebrew mismo
brew listListar paquetes instalados
brew search textBuscar paquetes
brew info pkgInformación del paquete
brew doctorDiagnosticar problemas
brew cleanupEliminar versiones antiguas
brew services listListar servicios en segundo plano
brew services start pkgIniciar un servicio

Gotchas

Command not found after install

# Añadir al PATH (comprueba tu shell)
# Para zsh (por defecto en macOS):
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile

# Para bash:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.bash_profile

# Luego recargar:
source ~/.zprofile  # o ~/.bash_profile

Permission errors

# Corregir permisos del directorio Homebrew
sudo chown -R $(whoami) /opt/homebrew

# O para Mac Intel:
sudo chown -R $(whoami) /usr/local/Homebrew

Package conflicts

# Desvincular paquete en conflicto
brew unlink pkg

# Vincular el que quieres
brew link pkg

# Forzar vinculación si es necesario
brew link --overwrite pkg

Brew doctor warnings

# Ejecutar diagnóstico
brew doctor

# Las advertencias sobre kegs no vinculados son generalmente seguras de ignorar
# Corrige los problemas como se sugiere en la salida

Next Steps