How to use the command 'brew' (with examples)
Homebrew is a widely-used package manager for macOS and Linux. It simplifies the process of installing, updating, and managing software and applications on these operating systems. Homebrew works through a command-line interface, providing users with a powerful tool to maintain their software libraries with ease. This article will explore some common usage scenarios of the brew
command, offering practical examples and insights into its functionality.
Use case 1: Installing the Latest Stable Version of a Formula or Cask
Code:
brew install formula
Motivation:
When you need a new software package on your system—whether it’s a CLI tool, library, or application—you can use Homebrew to handle the often complex task of downloading, compiling, and installing the software with just one command. This command is pivotal for both new users getting started and experienced users setting up or maintaining development environments efficiently.
Explanation:
brew
: This is the primary command used for interacting with Homebrew.install
: This subcommand tells Homebrew to download and set up a specified package (referred to as a “formula” for CLI tools or a “cask” for applications).formula
: Replace “formula” with the specific name of the package you wish to install. For instance, to install Node.js, you would runbrew install node
.
Example Output:
==> Downloading https://homebrew.bintray.com/bottles/node-14.17.0.mojave.bottle.tar.gz
==> Pouring node-14.17.0.mojave.bottle.tar.gz
🍺 /usr/local/Cellar/node/14.17.0: 3,635 files, 58.1MB
This output indicates the package has been successfully downloaded, unpacked, and installed on your machine.
Use case 2: Listing All Installed Formulae and Casks
Code:
brew list
Motivation:
As software accumulates on your machine, tracking what you have installed becomes crucial—especially for developers managing diverse projects. This command helps catalog your software library, providing an overview that’s beneficial for organizing environments, auditing usage, or troubleshooting.
Explanation:
brew
: Initiates the Homebrew command-line tool.list
: This subcommand yields a comprehensive list of all formulae and casks currently installed, making it easy to see what’s available on your system at a glance.
Example Output:
zip
zsh
zsh-completions
zsh-syntax-highlighting
Each listed item denotes an installed package, allowing you to quickly verify the existence and accessibility of software resources.
Use case 3: Upgrading an Installed Formula or Cask
Code:
brew upgrade formula
Motivation:
Keeping software up to date is essential for accessing new features, improvements, and security patches. This command offers an efficient means to refresh your software by upgrading individual programs or your entire software suite.
Explanation:
brew
: Calls upon the functionality of the Homebrew package manager.upgrade
: Directs Homebrew to update a specified package to its latest version.formula
: Substitute with the specific package you wish to upgrade; omit to upgrade all formulae and casks.
Example Output:
==> Upgrading 1 outdated package:
node 14.17.0 -> 14.17.1
==> Upgrading node
==> Pouring node-14.17.1.mojave.bottle.tar.gz
🍺 /usr/local/Cellar/node/14.17.1: 3,636 files, 58.2MB
The console displays which packages are being upgraded and provides confirmation of the process’s completion.
Use case 4: Fetching the Newest Versions of Homebrew, Formulae, and Casks
Code:
brew update
Motivation:
This is a critical step in ensuring that your Homebrew installation is using the most recent package definitions and improvements. Regular updates enable you to capitalize on the latest tools and security enhancements available through Homebrew.
Explanation:
brew
: Engages Homebrew’s capabilities.update
: Triggers Homebrew to pull the newest package descriptions and data from its central repository, aligning your system with the latest available versions.
Example Output:
Updated 2 taps (homebrew/core, homebrew/cask).
==> New Formulae:
formula1
formula2
==> Updated Formulae:
formula3
==> New Casks:
cask1
cask2
==> Updated Casks:
cask3
The system informs you of any new or updated formulae and casks that have been added to or modified in the repository, giving you a fresh view of potential installations.
Use case 5: Displaying Outdated Formulae and Casks
Code:
brew outdated
Motivation:
Being aware of outdated tools is vital for maintaining optimal functionality and security. Use this command to get a snapshot of which installed packages have newer versions available.
Explanation:
brew
: The command used to operate the package manager.outdated
: This subcommand organizes and lists the software with updates ready to be installed, allowing you to decide which updates you’re interested in pursuing.
Example Output:
node (14.16.0) < 14.17.1
This result indicates which of your installed packages have available upgrades, providing information to easily target individual updates.
Use case 6: Searching for Available Formulae and Casks
Code:
brew search text
Motivation:
Locating new software that can enhance your workflow or solve a problem often starts with a search. This command is invaluable for discovering what is available within Homebrew’s ecosystem by searching general terms or specific software names.
Explanation:
brew
: Invokes Homebrew for package handling.search
: Launches a procedure to find package names and descriptions matching the queried text or keywords.text
: Replace this placeholder with relevant keywords to narrow your search.
Example Output:
nginx
nginx-full
nginx-passenger
Each line indicates a package related to the searched term, guiding you to potential new installations or areas of interest.
Use case 7: Displaying Information About a Formula or Cask
Code:
brew info formula
Motivation:
Acquiring an in-depth understanding of a package is sometimes necessary before installation or upgrading. This command reveals extensive data about a software package, aiding in informed decision-making processes.
Explanation:
brew
: The command to activate Homebrew utilities.info
: Fetches comprehensive details about a specified formula or cask.formula
: Substitute with the name of the package you wish to investigate.
Example Output:
node: stable 14.17.1 (bottled), HEAD
Open source, cross-platform JavaScript runtime.
https://nodejs.org/
Conflicts with:
node@10 (because multiple versions of the same formula).
/usr/local/Cellar/node/14.17.1 (3,636 files, 58.2MB) *
Built from source on 2021-06-15 at 18:42:21
This output provides insights into the package version, description, dependencies, and installation details.
Use case 8: Checking for Potential Problems in the Local Homebrew Installation
Code:
brew doctor
Motivation:
Ensuring a smooth operation of package management often involves diagnosing and correcting configuration issues. Use this command to surface any potential problems or misconfigurations in your Homebrew setup.
Explanation:
brew
: Utilizes Homebrew’s command-line functions.doctor
: Performs a comprehensive audit of your Homebrew installation, identifying any anomalies or issues.
Example Output:
Your system is ready to brew.
On a healthy system, this reassuring message confirms that no configuration issues or discrepancies exist.
Conclusion:
Understanding and utilizing the brew
command effectively can significantly enhance how software is managed on macOS and Linux systems. Each use case addressed in this article illuminates essential aspects of Homebrew’s utility, from installing and upgrading software to diagnosing potential issues. With these examples and explanations, users can comfortably employ Homebrew in their technical toolkit, promoting an efficient and organized approach to software management.