Homebrew: Your MacOS Magic Wand
One of the biggest flaws MacOS has is that it has no package management system.
Sure, you can go to the App Store for some things that you'd need, but if you want to install any packages for local development or install software in one swoop, there's no MacOS standard for how to do that.
This is the power of Homebrew: the missing MacOS package manager.
Let's first lay the foundation for what Homebrew is and why it warrants your attention.
Homebrew is an open-source, free software package management system.
Homebrew simplifies the installation of software on macOS and Linux systems.
It's the magic wand of macOS, capable of conjuring software installations with a flick of the wrist (or rather, a click of the keys).
The Homebrew History: Brewed to Perfection
Homebrew was born out of frustration.
Its creator, Max Howell, found the existing package management solutions for macOS to be lacking.
So, in 2009, he released Homebrew to the world, and it quickly caught on. It's now used by developers globally, touted for its simplicity and power.
Into the Brew: A Detailed Dive
Now that we know what Homebrew is and its humble beginnings, let's delve deeper.
We'll focus on an essential feature of Homebrew, the
Brewfile, your recipe for software installations.
Homebrew: The Imperative Approach
Let's start out by unpacking the imperative way of using Homebrew.
This method involves directly instructing Homebrew to install, uninstall, or upgrade packages using specific commands.
To install a software package with Homebrew, you simply use the
brew install command, followed by the name of the software. For example, to install the
wget utility, you would type:
brew install wget
Homebrew will fetch the package from its repository, resolve any dependencies, and install it on your system. Easy as pie!
Removing software you no longer need is also straightforward. The
brew uninstall command, followed by the name of the software, does the job. So, to remove
wget, you would use:
brew uninstall wget
One of the best things about Homebrew is its handling of updates. You don't need to check each software individually. A simple
brew upgrade command will update all the software installed through Homebrew to their latest versions.
If you want to upgrade a specific software package, you can do so by appending the name of the software to the
brew upgrade command. For example:
brew upgrade wget
Searching for Software
Homebrew also simplifies finding new software. If you're not sure of a package's name, you can use the
brew search command to look for it. For example:
brew search python
This command will return a list of all packages related to Python.
Information about Software
Homebrew can also provide information about a software package using the
brew info command. This will display details like the software's description, version, and dependencies:
brew info node
A Wrap on The Imperative Approach
Homebrew's imperative approach makes managing software installations as simple as issuing direct orders.
Whether installing, uninstalling, updating, or searching, Homebrew's easy commands make software management a breeze.
Homebrew: The Declarative Approach
I prefer a declarative approach and use a brewfile for my local environment.
The beauty of Homebrew's
Brewfile approach lies in its portability and consistency.
In an ever-evolving tech world, where developers may need to work across multiple machines or set up new devices frequently, the
Brewfile is a godsend.
It ensures you have a consistent set of software across all devices, eliminating the usual inconsistencies that occur when installing software manually.
It's essentially a snapshot of your preferred software environment that you can take wherever you go.
It's this ease of portability and the assurance of a mostly consistent software setup that make declarative Homebrew installations a highly appealing choice for many users.
Brewfile is a list of software that you want Homebrew to manage. You write the list in a simple format that Homebrew understands, and Homebrew does the rest. The power of the
Brewfile lies in its declarative nature. You tell it what you want, and it makes it so.
Why Use a
Imagine setting up a new Mac. You could install all your applications manually, one by one. Or you could use a
Brewfile, giving Homebrew a list of what you want, and letting it do the heavy lifting.
Not only does this save time, but it also ensures consistency. With a
Brewfile, you can ensure that every machine has the same set of tools, reducing the "it works on my machine" issue.
Brewfile is a breeze. You make a new file called
Brewfile, and in it, you list the software you want to install. You can use Homebrew's
brew bundle dump command to generate a
Brewfile from your current software.
Here's an example
brew "wget" brew "node" cask "google-chrome" cask "slack"
Brewfile tells Homebrew to install
node via Homebrew, and
slack via Homebrew Cask.
Installing with a
To install software from a
Brewfile, navigate to the directory containing the
Brewfile and run
brew bundle. Homebrew will read the
Brewfile and install the listed software.
This system of a
brew bundle makes installing software on macOS as easy as brewing a cup of coffee.
Homebrew, with its humble history and handy
Brewfile handling, has emerged as a macOS mainstay. A powerful tool in the hands of developers, it turns the task of software installation from a chore into a charm.
I hope this article was helpful in explaining what Homebrew is, why it's useful and a few ways you can work it into your workflow.
May your future with Homebrew be as smooth as a perfectly brewed cup of joe.
Share on Twitter