Fetches the latest version of Homebrew and all formulae and upgrades. Use this to update brew itself.
Upgrades software packages managed by brew to their latest versions.
brew upgrade postgresql@14
Checks the Homebrew installation for potential problems and exit with a non-zero status if potential problems are found.
--cask is provided, list only installed casks, not formulae:
brew list --cask
When a specific formula or cask name is provided, list details about the installed artifacts associated with the formula or cask:
brew list bash
/usr/local/Cellar/bash/5.1.8/include/bash/ (58 files)
/usr/local/Cellar/bash/5.1.8/lib/bash/ (35 files)
/usr/local/Cellar/bash/5.1.8/share/doc/ (10 files)
/usr/local/Cellar/bash/5.1.8/share/locale/ (39 files)
/usr/local/Cellar/bash/5.1.8/share/man/ (2 files)
brew list --cask corretto11
List versions for a specific formula or cask.
brew list --versions git-lfs
brew list --versions --cask corretto11
If no such formula is installed, the command displays nothing and exits with 1.
If no such cask is installed, the command issues an error message exits with 1.
Display statistics on the specific formula or cask. Note that the formula or cask does not have to be currently installed on the system to get information. If the cask is not installed, the command will still provide names, descriptions and artifacts, but it will mention "Not installed".
If multiple version are present in the cellar, the active (linked) version is marked with *. By default assumes the names that are provided are formulae:
brew info bash
To display information about casks, use
brew info --cask corretto11
Install the latest version of a formula or a cask:
brew install <formula-name>
brew install --cask <cask-name>
Homebrew formulae or casks can be installed with Ansible, which provides modules that delegate to Homebrew native commands. For more details see:
Install a Specific Formula Version
To install a specific formula version, follow this procedure, exemplified with terraform (if you need to apply it to a different formula, you might need to adapt it).
git clone firstname.lastname@example.org:Homebrew/homebrew-core.git cd homebrew-core git log master -- Formula/terraform.rb # find the specific version and write down the commit git checkout <commit> cp Formula/terraform.rb ~/tmp cd ~/tmp brew unlink terraform brew install ./terraform.rb
Install a Specific Cask Version
It seems it's a big deal to revert to a specific version with Vagrant, it requires low level intervention: https://www.jverdeyen.be/mac/downgrade-brew-cask-application/.
This is a step-by-step example for Vagrant.
Clone the Homebrew homebrew-cask repository:
git clone email@example.com:Homebrew/homebrew-cask.git
Pull the history of the specific cask you want to downgrade (in this case
git log master -- Casks/vagrant.rb
Based on the commit comment, pick the commit corresponding to the desired version:
Author: Nikolas Evers <firstname.lastname@example.org>
Date: Tue Oct 15 12:22:12 2019 +0200
Update vagrant from 2.2.5 to 2.2.6 (#70854)
Uninstall the current version:
brew cask uninstall vagrant
Using the commit identified above, install the desired version:
brew cask install https://raw.githubusercontent.com/caskroom/homebrew-cask/ae2a540ffee555491ccbb2cefa4296c76355ef9f/Casks/vagrant.rb
uninstall (remove, rm)
Uninstall a formula or a cask. By default it assumes formulae.
brew uninstall wget
--cask to configure it to uninstall one or more casks:
brew uninstall --cask corretto11
After the execution of a cask uninstall command, the whole directory associated with the cask is removed from Caskroom.
Displays the path where the specified formula is located.
brew formula <formula-name>
Without any arguments, display all taps available on the system:
Add a New Tap
brew tap [--full] <user>/<repo> [URL]
Install homebrew/cask-versions Tap
Why is this necessary? Why doesn't homebrew/cask suffice?
brew tap homebrew/cask-versions
For more about Homebrew Cask see:
brew pin command will prevent Homebrew from updating/upgrading the installed version of the specified formula when brew upgrade is executed.
brew unpin releases this constraint.
Usage: brew switch <formula> <version>
brew switch mysql 5.5.29
Does it need to exist in Cellar?
Alternative: brew link.
The "link" command symlinks an installed package, located in /usr/local/Cellar to /usr/local. "link" works if the alternative versions are both installed in /usr/local/Cellar (for example /usr/local/Cellar/go and /usr/local/Cellaremail@example.com). "link" does not work if the alternative versions are installed as version subdirectories in the package Cellar directory. If there is a /usr/local/Cellar/yq/3.4.1 and a /usr/local/Cellar/yq/4.2.0, trying to use "brew link yq" does not work. In this situation, use brew switch.
The 'unlink' command removes the symlink of installed package, located in /usr/local/Cellar to /usr/local
brew unlink git
To the current version installed can be reported with brew info <formula>.
brew search corretto11
Performs a substring (or regex) search of cask tokens and formula names. If the text is flanked by //, it is interpreted as a regular expression. The search is local and then on-line in homebrew/core and homebrew/cask.
brew bundle and write installed casks/formulae/images/taps into
brew bundle dump --file=~/Brewfile
This can be used to save information about all packages installed on the system. They can be reinstalled with:
brew bundle install --file=~/Brewfile
brew services start <service-name>
brew services stop <service-name>
list command above.
install command above.
uninstall command above.
Full Upgrade and Cleanup
brew update && brew outdated && brew upgrade && brew cleanup