The other day I wrote a post about the Mac package manager, Homebrew. After using the program and getting to know it a bit better, I need to make a correction to something I said there.
There is an update command for Homebrew: brew update. Run this on occasion and you’ll see a list of packages that have been updated or eliminated. If you pay attention, you might notice that, e.g., the formula for git has changed to 1.7.2.1. But a git --version will reveal that your version hasn’t changed. So what gives?
It turns out that brew update does not update all your Homebrew installed programs automatically. That makes sense, actually–you might have a reason to want to stick with an old version of something.
If you know you want to update all your Homebrew programs, you can run brew install `brew outdated`. That will determine which files have been changed and re-install the ones relevant to you.
If you want to be more selective, you can run this as a two-step process. First, a brew outdated will tell you which programs have changed. It will also tell you the version number for the new version, if that matters to you. Then you can brew install X for your outdated programs.
Note: Homebrew still seems a little bit rough around the edges to me. I successfully installed a handful of programs using it, but when I tried to update one of them (the Haskell platform), I couldn’t get it to install properly. Rather than trying to track down the error (it is getting late), I ended up using my basic working knowledge of git (the version control system that makes brew update and brew outdated possible) to go back to an older version of the program to install. I’m no git expert, so this couldn’t have taken that much acumen, but it did take a little bit of knowledge. I’d still recommend Homebrew, but as with any command line based program, I’d say if you use it you risk learning more about your computer than you might’ve wanted to know.

I love the last line. So true.
Before you know it, you’ll be writing shell scripts, and before long, actual programs, and full on geekdom can’t be far behind.
But this is worse news than I thought–I’m going to become even more of a geek?
Great post. Thank you. Here are a few more breadcrumbs for my fellow darwin/Mac OS X travelers: (1) abandon MacPorts. Here’s what you must do to become clean: http://guide.macports.org/chunked/installing.macports.uninstalling.html;
(2) read the brew tea leaves. –brew doctor– gave me the following homework assignments: i. update my $PATH — put /usr/local/bin ahead of the rest; ii. make sure you have -> export LC_ALL=(unset) export LC_CTYPE=en_US.UFT-8 export LANG=en_US.UTF-8 defaults write org.R-project.R force.LANG en_US.UTF-8
(3) do –brew audit-. I was told to chmod 644 all files in /usr/local/Library/Formula.
(4) work your way through the commands : https://github.com/mxcl/homebrew/wiki/The-brew-command
Thanks again. open source is love
ok. I’d like to retract part of step (2). –Brew Doctor– was right on. However, everything else messed up my “setlocale” settings. So I commented out the lines in my .bashrc that set the LC_ vars used by setlocale:
export LC_ALL=(unset)
export LC_TIME=en_US.UTF-8
export LC_CTYPE=en_US.UFT-8
export LANG=en_US.UTF-8
defaults write org.R-project.R force.LANG en_US.UTF-8
I went through ‘brew’ commands and things seem to work ok. .. and ‘cal’ doesn’t give errors. I’ve still got a ways to go .. –sigh–
Paul, Thanks for all the details. I didn’t have MacPorts installed, and I didn’t run into any of these issues, so I didn’t know about them. Thanks for the heads up. Good luck getting everything straightened out!