Homebrew

Essential Homebrew commands for installing, updating, and managing packages on macOS and Linux.

cli
homebrewbrewmacoslinuxpackage-manager

Installation

# Install Homebrew on macOS or Linux
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Basic Commands

# Search for a package
brew search <package>

# Get info about a package
brew info <package>

# Install a package
brew install <package>

# Uninstall a package
brew uninstall <package>

# List installed packages
brew list

# List installed packages with versions
brew list --versions

Updating

# Update Homebrew itself
brew update

# Upgrade all installed packages
brew upgrade

# Upgrade a specific package
brew upgrade <package>

# See outdated packages
brew outdated

Casks (GUI Applications)

# Search for a cask
brew search --cask <app>

# Install a GUI application
brew install --cask <app>

# Uninstall a cask
brew uninstall --cask <app>

# List installed casks
brew list --cask

Taps (Third-Party Repositories)

# Add a tap
brew tap <user/repo>

# Remove a tap
brew untap <user/repo>

# List all taps
brew tap

Cleanup

# Remove old versions of packages
brew cleanup

# See what would be cleaned up
brew cleanup -n

# Remove a specific package's old versions
brew cleanup <package>

# Remove cache
brew cleanup --prune=all

Services

# List all services
brew services list

# Start a service
brew services start <service>

# Stop a service
brew services stop <service>

# Restart a service
brew services restart <service>

# Run service once (don't restart at login)
brew services run <service>

Troubleshooting

# Check system for potential problems
brew doctor

# Show Homebrew configuration
brew config

# Display dependencies for a package
brew deps <package>

# Show packages that depend on a package
brew uses --installed <package>

# Reinstall a package
brew reinstall <package>

Pinning

# Pin a package (prevent upgrades)
brew pin <package>

# Unpin a package
brew unpin <package>

# List pinned packages
brew list --pinned

Multiple Versions

# Search for available versions of a package
brew search <package>@

# Install a specific version
brew install <package>@<version>

# Example: Install Node.js versions
brew install node@18
brew install node@20

# List installed versions
brew list | grep <package>

# Unlink current version
brew unlink <package>

# Link a specific version
brew link <package>@<version>

# Force link (if already linked)
brew link --overwrite <package>@<version>

# Check which version is active
<package> --version

Bundle (Brewfile)

# Create a Brewfile from installed packages
brew bundle dump

# Install from a Brewfile
brew bundle

# Check if all dependencies are installed
brew bundle check

# List packages in Brewfile
brew bundle list