Michael P. Soulier
But I Digress
Being a Linux user, I'm used to a fairly standard set of tools on my command-line. On OS X, it's essentially BSD UNIX underneath, which I have had some experience with thanks to FreeBSD. The environment is very similar, but not identical, and on FreeBSD, you quickly find yourself using the ports system to install new packages that have been ported to FreeBSD from places like Linux.
It took about five minutes of FreeBSD use for me to go install bash, wget, vim, imagemagick, and a host of other packages. There's a lot already installed with OS X, but a few key things or me were definitely missing. I pulled vim from MacVim, but then I had to look for somewhere to get everything else I needed.
Being UNIX, I had several choices:
Well, I've done source installs, I've done ports out of FreeBSD, so I figured I'd see how Homebrew works. Basically, it makes /usr/local owned by the user that installs it, which on OS X is me, as an administrative user (like a Windows power user). From there you can double-check that everything is set up properly by running:
It will pick up permission problems, issues with your PATH environment variable, warn you about packages that were built but not symlinked into /usr/local properly, etc. Then it's not much different than using apt-get on Debian, except that the packages are building when they install, they're not pre-built binaries. So wget was just:
brew update brew install wget
Since then I've installed some essentials, and non-essentials if I include freeciv. Lets see, I have:
msoulier@merlin:~$ brew list c-ares git lame lua sdl_mixer cracklib glib libevent lynx tmux feh gmp libffi mutt tokyo-cabinet flac gnupg libgcrypt nettle unrar fontconfig gnuplot libgpg-error p11-kit wget freeciv gnutls libmikmod pcre xz freetype imagemagick libogg pkg-config gd imlib2 libpng readline gettext irssi libtasn1 sdl giblib jpeg libvorbis sdl_image
Rather nicely, the packages are all installed under /usr/local/Cellar/, and symlinked into the right places so they show up in my path, and for building. As I really hate installing from source, because you never know what you have installed or how to uninstall it, or what you'll break if you upgrade it, I like this.
I do find that other packages mess with those careful permissions, so I keep running brew doctor so I know about the issues. I also noticed, thanks to a coworker, that the Perl community has done something similar for install Perl modules called Perlbrew. I'm going to look into that soon, as honestly, it's about damn time. Managing personal Perl modules sucks, has always sucked, and now thanks to Perlbrew will hopefully suck no longer. But I digress, more on that in another post.
I give Homebrew an A. An A+ would be a command to fix permissions problems without my help, and maybe there is one, these things elude me at times. I highly recommend it if you're trying to complete your *nix environment on OS X.