Create a gist now

Instantly share code, notes, and snippets.

Install a previous version of a formula with Homebrew
# Installs the previous version of a Homebrew formula
# Usage: brewv formula_name desired_version
# Based on
# Author: Matti Schneider <> (
versions=$(brew versions $1)
result=$(echo "$versions" | grep -m 1 $2) #-m 1 to stop as soon as possible
if [[ $? = 0 ]]
commit=$(echo $result | cut -d ' ' -f 4)
formula=$(echo $result | cut -d ' ' -f 5)
cd /usr/local
if [[ -e $formula ]]
then brew unlink $1 # will fail if not already installed, hence the check above
git checkout $commit $formula &&
brew install $1 &&
git reset HEAD $formula &&
git checkout -- $formula
cd - > /dev/null
echo "$1 $2 installed."
echo "You can now switch versions with 'brew switch $1 <version>'"
echo "$versions"
echo "No version matching '$2' for '$1'"
echo "Available versions have been printed above"
exit 1

Thanks :-)


That's so awesome.


Great! Thank you!


Very helpful!


finally - tx!

as of Oct 2014 "brew versions" is no longer part of homebrew. You need to tap homebrew/boneyard before being able to use the script above:

brew tap homebrew/boneyard  

this puts the command "brew versions" back in your tool set

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment