Skip to content
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 :-)

Ndpnt commented Oct 31, 2013

That's so awesome.

5te commented Jan 15, 2014

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
Something went wrong with that request. Please try again.