Skip to content

Instantly share code, notes, and snippets.

@gcatlin
Created February 16, 2012 19:43
Show Gist options
  • Save gcatlin/1847248 to your computer and use it in GitHub Desktop.
Save gcatlin/1847248 to your computer and use it in GitHub Desktop.
Install specific version of Homebrew formula
brew update
brew versions FORMULA
cd `brew --prefix`
git checkout HASH Library/Formula/FORMULA.rb # use output of "brew versions"
brew install FORMULA
brew switch FORMULA VERSION
git checkout -- Library/Formula/FORMULA.rb # reset formula
## Example: Using Subversion 1.6.17
#
# $ brew versions subversion
# 1.7.3 git checkout f8bf2f3 /usr/local/Library/Formula/subversion.rb
# 1.7.2 git checkout d89bf83 /usr/local/Library/Formula/subversion.rb
# 1.6.17 git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
# 1.6.16 git checkout 83ed494 /usr/local/Library/Formula/subversion.rb
# 1.6.15 git checkout 809a18a /usr/local/Library/Formula/subversion.rb
# 1.6.13 git checkout 7871a99 /usr/local/Library/Formula/subversion.rb
# 1.6.12 git checkout c99b3ac /usr/local/Library/Formula/subversion.rb
# 1.6.6 git checkout 8774131 /usr/local/Library/Formula/subversion.rb
# 1.6.5 git checkout a82e823 /usr/local/Library/Formula/subversion.rb
# 1.6.3 git checkout 6b6d369 /usr/local/Library/Formula/subversion.rb
# $ cd `brew --prefix`
# $ git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
# $ brew install subversion
# $ brew switch subversion 1.6.17
# $ git checkout -- Library/Formula/subversion.rb
@ConnorDoyle
Copy link

👍
@jonmcewen -- brew switch appears to simply update the symlink in /usr/local/bin to the specified formula version in the Cellar.

@Leviathans
Copy link

when i brew update
error: Your local changes to the following files would be overwritten by merge:
Library/Formula/subversion.rb
Please, commit your changes or stash them before you can merge.
Aborting
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

@bingeboy
Copy link

Dude nice! I had 404 from all old versions of SVN but was able to manually drop in 1.7.11 into the svn folder and homebrew picked it up.

@rainchen
Copy link

git checkout -- Library/Formula/FORMULA.rb this line is not working. I have to replace the -- with the hash of latest commit to get this work

@rainchen
Copy link

I created a function version https://gist.github.com/rainchen/6363948
usage example:
$ brew-install ssh-copy-id 6.0p1

@netsensei
Copy link

Works perfectly! Thx!

@hansenc
Copy link

hansenc commented Feb 4, 2014

When trying to install subversion 1.7.x, I got "Error: No available formula for serf". The workaround was:

$ brew tap homebrew/versions
$ brew install subversion17

as mentioned here. To switch back and forth between the two, you can use brew unlink and brew link.

@revolter
Copy link

revolter commented Nov 1, 2016

There is no brew versions command.

@PikalaxALT
Copy link

The brew versions command has been completely deprecated, and the tap has been drained.

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