Brew: the future of package management on OSX? Hope not.

Warning: This might come off a little ranty.

You know, it might just be that some people need to install older-than-the-bleeding edge versions of software. Some of us have stable production systems, that for whatever reason, don’t always run the latest, nightly-build-sure-it’ll-be-fine-no-really versions of everything.

Turns out to to this using “brew”, you have to go through some quite odd contortions

  1. Install brew (would assume you’ve already done this at least)
  2. brew update (this makes sure you have the /usr/local/.git directory)
  3. brew versions rabbitmq (I’m looking for 1.7.2 of RabbitMQ in this case)
  4. Copy down the git commit hash of the version I want.
  5. git checkout -b temp_branch $GITHASH
  6. brew install rabbitmq
  7. git checkout master
  8. git branch -d temp_branch

Clearly something like ‘brew install rabbitmq –version=1.7.2′ is far too difficult.

Also, what the hell is with brew littering the root of /usr/local with it’s junk? Is there something wrong with something clean like /usr/local/brew?



  1. you can get just the old rabbitmq formula with

    git checkout a3a65f5 /usr/local/Library/Formula/rabbitmq.rb

    if dependences haven’t changed there no need to revert back the entire repository.

      • joff on March 28, 2012 at 12:10 pm
      • Reply

      Hi man 🙂

      I’ve since discovered this, and using brew versions [packagename] will give you the list of versions -> git hashes as well.

      You can also use brew switch [packagename] to switch between installed versions, which is nice. These features were added to brew after we’d forked our repo (ages ago).

Leave a Reply

Your email address will not be published.