In this post, I am diving into Homebrew software and providing valuable commands for anyone interested to have in their repertoire.
Homebrew is a free and open-source package manager that simplifies the installation, updating, and management of software, primarily on macOS and Linux systems.
What is Homebrew Software?
Homebrew refers to a software package manager that allows users to easily download, install, and manage software and developer tools through the command line instead of manual downloads and installations. It is sometimes also used in a broader sense to describe hobbyist-created or unofficial software, but in the context of macOS and Linux, it specifically denotes the Homebrew package manager.
Main Uses of Homebrew
Homebrew is used to install command-line tools, programming languages, developer utilities, and in some cases, desktop applications (through its “cask” system) on a system that may not include these by default. It manages dependencies and versions, automates upgrades, and makes organizing software much easier for developers and power users.
Operating Systems Commonly Used
Homebrew is most commonly used on macOS, as the system lacks a built-in package manager, making Homebrew the “missing package manager”. It is also available for Linux, but since Linux already has its own package managers like apt and yum, it is less commonly used there.
Naming: “Homebrew” vs “brew”
The actual command used to interact with Homebrew is brew. The name “Homebrew” refers to the project itself, while “brew” is a nod to its theme and is used for commands. The theme extends to terms like “formula” for packages and “cask” for app installations, and plays on words related to brewing beer (e.g., “cellar” for the installation directory, “bottle” for binaries).
Safety of Downloading Software
Homebrew is widely regarded as safe, especially if installed via the official site and used responsibly. It is maintained by a trusted community, and the software repositories are updated regularly. However, as with any package manager, users should be careful about which packages they install and always prefer packages from official sources.
Problems Solved by Homebrew
Homebrew solves several problems:
- Simplifies the process of installing, updating, and uninstalling software through the command line
- Automatically handles dependencies for packages, reducing manual work
- Standardizes software setup across different machines
- Fills the gap for macOS users who lack a native package manager
Alternatives to Homebrew
Other package managers serve similar purposes:
- For Linux: apt (Debian/Ubuntu), yum/dnf (Fedora/RedHat), pacman (Arch)
- For macOS: MacPorts, Fink, Conda (for scientific packages), Nix
- Cross-platform: Nix is available for macOS and Linux, and Scoop for Windows is a similar command-line package manager
Homebrew stands out on macOS for its simplicity and extensive repository, but alternatives exist for users with specific needs or preferences
Why does homebrew differentiate between CLI tools and GUI applications?
Homebrew differentiates between CLI tools and apps to optimize handling, installation, and updating of different types of software, streamlining user experience and management.
- CLI tools: These are command-line programs, installed through Homebrew as “formulae,” which are scripts defining how to build and install software that can be run from the terminal.
- Apps: These are usually graphical applications, managed via “casks.” Casks handle non-open source, binary, or GUI software and automate placing the application in the macOS Applications folder
Why Make This Distinction?
- Different installation processes: CLI tools often need to be compiled, configured, and linked in system paths, whereas GUI apps are downloaded as pre-built binaries and placed in the Applications folder.
- Dependency management: CLI tools may have many dependencies and versions to track, while GUI apps are usually contained and self-managed.
- Update mechanisms: Homebrew can automatically update CLI tools, but apps installed via cask may have their own update systems, which Homebrew respects (some casks aren’t updated via Homebrew if the app has internal update capability).
- Organization and convenience: This structure ensures users can manage both types with easy commands, migrate setups, and keep everything organized in one place.
The differentiation helps users automate installation, backups (via Brewfile dumps), and system migration while ensuring appropriate update and management workflows for each kind of software
Homebrew Customary terms and their purpose
Homebrew uses unusual terms such as “formulae,” “brew,” and “casks” because it follows a playful, beer-themed naming convention to make its software package management recognizable, memorable, and distinct from other package managers.
- Brew: Refers to the core command-line tool for interacting with Homebrew, playing on the theme of “brewing” things, much like beer brewing.
- Formula(e): These are definitions written in Ruby that describe how to build and install command-line software packages (CLI tools) from source. The term suggests the recipe or formula for building and preparing the software, continuing the brewing metaphor.
- Cask: Used for GUI or graphical applications, a “cask” is a package definition for installing pre-built macOS apps or binaries. A cask is a container for liquids, especially beer—the analogy fits packages containing ready-to-use applications
- Tap: A third-party software source or repository, named after a beer tap.
- Cellar: The directory where Homebrew installs its packages, as beer is often stored in a cellar.
- Bottle: Pre-built binary packages are called “bottles,” suggesting they are ready to be served, much like a bottle of beer
This playful terminology not only makes command-line usage unique and more engaging, but also helps users clearly distinguish roles and functions within the Homebrew ecosystem.
Homebrew key concepts and commands
The key concepts of Homebrew revolve around managing packages efficiently with memorable beer-themed terms, while its commands make typical package management tasks easy from the command line.
Essential concepts
- Formula: Definition for CLI tool installation.
- Cask: Used for GUI/macOS apps.
- Tap: Additional software repositories.
- Cellar, Bottle: Directories and pre-built binaries.
- Upgrade, Cleanup: Keeping packages current and system tidy.
Useful Homebrew Commands
Closing notes
I hope this post helped you understand or explore Homebrew as it did for me, particularly why it is useful and how to build a custom repertoire of the most useful Homebrew commands if you ever need them. Let me know if you have any other commands I could add to the list.

Leave a Reply