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
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:
- Grab the source and build it myself.
- Install MacPorts and build it from there.
- Install Homebrew and build it from there.
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 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
There are comments.