Homebrew (package manager)
Homebrew (package manager)
Homebrew is a free and open-source package manager for macOS and Linux. It simplifies the installation of software by compiling packages from source or downloading precompiled binaries, managing dependencies automatically. Homebrew is written in Ruby and was created by Max Howell in 2009. It is colloquially referred to as brew, after its primary command-line tool.
Homebrew installs packages to its own directory at `/usr/local` on macOS (or `/opt/homebrew` on Apple Silicon) and then symlinks their files into system paths, avoiding conflicts with system software. Users can easily update, upgrade, or remove installed packages. The project maintains a central repository of "formulas" (recipes for building and installing software) and "casks" (extensions for distributing GUI applications).
Features
- Formulas – Ruby scripts that describe how to download, compile, and install command-line programs and libraries.
- Casks – A mechanism to install native macOS applications (e.g., Firefox, Visual Studio Code) from the command line, managed via the `brew cask` subcommand (now integrated into `brew install --cask`).
- Taps – Third-party repositories that extend Homebrew’s package collection. Users can add taps using `brew tap user/repo`.
- Services – Homebrew provides a `brew services` command to manage background services (e.g., start/stop daemons like MySQL, PostgreSQL).
- Dependency resolution – Automatically installs required libraries and tools, ensuring consistent builds.
- Self-update – `brew update` synchronizes the local formula index with the upstream repository, and `brew upgrade` updates all outdated packages.
History
Homebrew was first released in 2009 by Max Howell as a more modern and flexible alternative to MacPorts and Fink. Its design emphasized simplicity and leveraging the host system’s existing libraries to reduce compilation time. The project gained rapid adoption among macOS developers.
In 2015, Homebrew introduced Cask, allowing installation of GUI applications. In 2018, the project merged the Cask functionality directly into the main `brew` command. Homebrew added official Linux support in 2019, enabling a similar package management experience on many Linux distributions.
The package manager is community-driven, with thousands of contributors maintaining over 6,000 formulas and 4,000 casks (as of 2024). It is licensed under the BSD 2-Clause License.