Install Homebrew · Mac

Install Homebrew

Step by step instructions explaining how to install Homebrew on a Mac, either Mac Intel or Mac M1. Developers use Homebrew to install various software packages on a Mac. You’ll need Xcode Command Line Tools as a prerequisite, but if you don’t have it, Homebrew will install it.

Tip: If you did not use a password to log in to your Mac (that is, if your password is blank), you cannot install Homebrew.

Steps

Here are steps to install Homebrew (details in this complete guide).

  • Prepare your Mac.
  • Install Homebrew.
  • Update the shell configuration (Mac M1 only).
  • Install packages.

These instructions are for a terminal running Zsh, the Z shell, on a newer Mac. Older Macs may be running the bash shell and you should upgrade.

Check for Homebrew

Check if Homebrew is installed:

brew

If Homebrew is not installed, you will see:

zsh: command not found: brew

If Homebrew is not installed, there should be no Homebrew files in /usr/local (for macOS Intel) or /opt/homebrew (for Apple Silicon).

 

Brew install

Homebrew provides an installation script you can download and run with a single command (check that it hasn’t changed at the Homebrew site). This is the easiest way to install Homebrew.

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

The Homebrew installation script will ask you to enter your Mac user password. This is the password you used to sign into your Mac.

You’ll see a list of files and folders that Homebrew will install.

Option to install XCode Command Line Tools

If you haven’t already installed XCode Command Line Tools, you’ll see a message that “The XCode Command Line Tools will be installed.” Press return to continue when prompted by the Homebrew installation script. It takes one to two minutes to download and install the Command Line Tools.

 

You’ll see diagnostic and progress messages. Homebrew installation takes 1.5 minutes on a 2021 Mac M1 Mini, with a 100Mbps Internet connection. It’s significantly slower on Mac Intel over a slow Internet connection.

On Mac Intel machines, that’s all you need to do; Homebrew is ready to use. On Mac Intel, Homebrew installs itself into the /usr/local/bin directory, which is already configured for access by the shell with the macOS default $PATH environment variable (the default is set by the /usr/libexec/path_helper command).

Add Homebrew shell configuration

On Apple Silicon machines, there’s one more step. Homebrew files are installed into the /opt/homebrew folder. But the folder is not part of the default $PATH. Follow Homebrew’s advice and create a ~/.zprofile file which contains a command which sets up Homebrew. Homebrew shows instructions at the end of the installation process:

– Add Homebrew to your PATH in ~/.zprofile:

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

The Homebrew console output will show your user directory name (the example above contains the Unix ~ tilde shortcut instead).

Alternative shell configuration

Alternatively, you can use a favorite text editor to edit the ~/.zprofile file. Or open ~/.zprofile to use TextEdit to edit the file. You’ll need to add the line eval "$(/opt/homebrew/bin/brew shellenv)" to the file.

Some developers don’t use the ~/.zprofile file, preferring to set the shell configuration in the ~/.zshrc file. That’s okay, but the ~/.zshrc file is evaluated every time a shell is launched. The ~/.zprofile file is only evaluated when you login to your mac user account, so setting the shell with the ~/.zprofile file happens only once at login, saving some overhead.

Shell configuration explanation

Here’s what the brew shellenv command does. It sets environment variables for PATH, MANPATH, INFOPATH, HOMEBREW_PREFIX, HOMEBREW_CELLAR, and HOMEBREW_REPOSITORY. If you don’t use the brew shellenv command, you can achieve the same result by setting environment variables directly in your ~/.zprofile or ~/.zshrc files.

export HOMEBREW_PREFIX="/opt/homebrew";
export HOMEBREW_CELLAR="/opt/homebrew/Cellar";
export HOMEBREW_REPOSITORY="/opt/homebrew";
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin${PATH+:$PATH}";
export MANPATH="/opt/homebrew/share/man${MANPATH+:$MANPATH}:";
export INFOPATH="/opt/homebrew/share/info:${INFOPATH:-}";

The Homebrew site doesn’t explain the purpose of the shell configuration, and while this might seem like unnecessary detail, it is essential and you will need to know how it works if you need to troubleshoot.

Verify Homebrew installation

After you’ve installed Homebrew, check that Homebrew is installed properly.

brew doctor

You should see:

Your system is ready to brew.