Mac Homebrew Essentials: How to Install Specific Versions

brew install composer

Homebrew stands out as a premier package manager for macOS, streamlining the installation and management of software. In the complex world of software development, the ability to install a specific version of an application is required. This not only ensures compatibility with older projects but also provides a safeguard against potential issues in newer releases. In this article, we’ll show you how to install specific versions using Mac brew.

Understanding Homebrew’s Versioning System

At the heart of Homebrew’s efficiency is its robust versioning system. Homebrew organizes software packages through what it terms as “formulae”. Each formula represents a script that facilitates the installation of a specific software version. When users request a software installation, Homebrew fetches the corresponding formula and executes it. This systematic approach ensures that users can access both the latest releases and specific older versions with equal ease.

The Simplest Case: Checking Installed Versions

Before diving into the installation of a new version, it’s prudent to ascertain the versions already present on the system. Homebrew provides a straightforward command for this:

brew list --versions

This command lists all installed packages along with their versions. Additionally, Homebrew employs symbolic links to point to the active version of a software. This means that even if multiple versions of a software are installed, only one is designated as the ‘active’ version. To seamlessly switch between different installed versions, users can utilize the brew switch command:

brew switch software_name version_number

By mastering these commands, users can maintain a clear overview of their software landscape and ensure the right versions are in operation.

See also  Fix MacBook WiFi No IP Address Problem: Quick Solutions

Searching for Older Versions with Homebrew

Homebrew’s flexibility extends beyond just the latest software versions. Through a feature known as “taps”, users can access a repository of older software versions. To “brew install specific version” of a software, one might need to tap into these repositories. The command to search for versioned formulae is:

brew search software_name

This will display available versions, allowing users to choose and install their desired one.

Homebrew’s Relationship with Git

An intriguing aspect of Homebrew is its integration with Git for version control. This means every change, including formula updates, is tracked. For those familiar with Git, this offers a pathway to checkout older formula versions directly. The process involves navigating to the Homebrew directory and using Git commands. However, this method comes with its caveats. Directly manipulating Homebrew’s Git history can lead to inconsistencies, so it’s essential to proceed with caution.

Manual Installation: Crafting Your Own Formula

There might be instances where neither taps nor Git history provide the desired version. In such cases, crafting a custom formula becomes a viable option. This method is particularly useful when one needs a very specific software configuration. To begin, users create a formula script detailing the installation process. Once written, the command to install from this custom formula is:

brew install /path/to/custom/formula.rb

While this offers unparalleled customization, it’s crucial to ensure the formula’s accuracy to prevent potential software conflicts.


What do I do if a specific version isn’t available as a tap?

If a “brew install specific version” isn’t available as a tap, consider checking Homebrew’s Git history or crafting your own custom formula to achieve the desired installation.

How do I prevent Homebrew from updating a specific formula?

To prevent Homebrew from updating a particular formula, you can pin it using the command:
brew pin software_name
This ensures that the specified formula remains untouched during general updates.


Grasping Homebrew’s version control intricacies is invaluable for precise software management. By delving deep into its capabilities, users can harness the full potential of this robust package manager.

Support us & keep this site free of annoying ads.
Shop or Donate with Paypal

Leave a Comment