1 May 2012
OS X Spring Nuking
Sometimes you just get fed up with your broke-ass environment and you need to
start over. Despite best intentions, you temporarily lose your vigilance, and
you end up with macports and homebrew on your machine at the same time.
Strange poltergeists creep into your machine and start warning you about
Nokogiri every time you execute rails. Command-T completely refuses to work
for no good reason, and you become suspicious, which’ing and –version’ing
every call. Your home dir has accumulated so much junk, tab completion has
become useless.
Stop the insanity. Nuke it all. And by nuke, I mean delete everything and re-
install OS X. I’ve always been a fan of starting from scratch, and the best
thing about nuking is, the more you do it, the easier it is. My latest foray
has been my finest to date, thanks to a short consultation with Chris Moore, a connessuier of nuking the
things.
After moving all my keeper stuff offshore, to Dropbox or whatnot, I wiped out
my hard drive and reinstalled Lion (hold Command-R during restart). I did
the Mac setup stuff and once I was able to hit Safari, I found myself
installing a few desktop apps, 1Password was needed almost immediately. Shout-
out to SizeUp, apparently I can’t live without it either.
I didn’t import all of my old 1Password data back in, because, surprisingly,
my 1Password was also a horrific mess. So my strategy is to pull things from
offshore as I realize I need them, which is rarely. More often than not, I
find myself just resetting all of my online passwords, it’s easier than
importing and it doesn’t seem like a terrible practice.
My next step was to start using Time Machine. I’ve stopped using it in the
past because I was doing it wrong. At this point in the process, it seemed
pretty essential to be able to roll back because installing code is like
adding salt, it’s very easy to do it, not so much the reverse.
The big exciting next step, on Chris’s suggestion, was to install Cinderella
for Mac OSX (previously Cider). I was
really hoping this was going to work out, and it did. It only required Xcode,
so I installed the latest.
Cinderella is a gem, that utilizes homebrew and chef to install all of the
things. Namely: Ruby, Python, Node, Erlang, MySQL, PostgreSQL, Redis, Riak,
Elastic Search, Memcached, and MongoDB. Do I need all of those things? No. Do
I need one third of them? Almost. Have I worked with some of these things in
the past, and do I not wholly reject using any of them in the future? Yes. Do
I respect the idea of some of these things and fantasize about someday
becoming the master of them? Yes. Would I like to just set this thing to run
for a couple hours and play games on my iPhone? Yes. Carry on.
So I immediately encountered some sad stuff on attempting to install the gem.
The issue and fix are outlined here.
Look for the post by cpeterson, in which you install “Command Line Tools” via
an Xcode menu.
Once that was cleared up, it took a while, but with two commands Cinderella
installed and set up all of those things, not to mention homebrew and rbenv,
and put it all in ~/Developer. Quite tidy.
Cinderella finished, I cloned one of our Rails projects, did some obligatory
set up and was running it without issue. Validated, I’ve just implemented
Chris’s final pro-tip, which was to version all of my dot files. I’ve just
committed and pushed my vim, bash, and git configs.
I love how the last step is already preparing me for the inevitable, I can
hardly wait to nuke again. When you’ve come to terms with the fact, like me,
that you are a messy piggy of a developer sometimes, or you accept the fact
that you’re still trying to get a handle on Unix best practices, just resolve
to become really good at cleaning your pen.