I got a new macbook pro. Rather than migrate my settings automatically I decided I’d go for a little spring cleaning by buillding it up from scratch.
Initial setup stuff
- start software update
- go through system preferences, add appropriate paranoia
- open keychain utility, add appropriate paranoia
- run software update
- insert Mac OS X CD, install XCode
- remove all default bookmarks from safari
- open iTunes, sign in, turn off annoying things like ping
- download, extract, install, run once, enter serial (where needed)
- Chrome
- Firefox
- set master password
- Thunderbird
- set master password
- Skype
- OmniGraffle
- OmniPlan
- TextMate
- VMware Fusion
- Colloquy
- IntelliJ IDEA; disable most enterpriseish plugins; then open plugin manager and install
- python plugin
- ruby plugin
- I have years of crap in my intellij profile which I’m not adding to this machine
- VLC
- Things
- download stunnel, extract,
sudo mkdir /usr/local && sudo chown $USER /usr/local
,./configure --disable-libwrap
,make
,sudo make install
- launch terminal, customize terminal settings (font size, window size, window title, backgroundc color) and save as default
Transfer from old mac
- copy over secure.dmg, mount, set to automount on startup
- import certs into keychain, firefox, thunderbird
- set up thunderbird with e-mail accounts
- copy over
~/.ssh
and~/.subversion
- set up stunnel for colloquy, run colloquy, add localhost as server, set autojoin channels, change to tabbed interface
- copy over keychains
- copy over Office, run office setup assistant
- copy over documents, data
- copy over virtual machines
- open each virtual machine, selecting “I moved it”
- copy over itunes library
- plug in, pair and sync ipad and iphone
Backup
- set up time machine
Development packages
I like to know what is in my /usr/local
, so I don’t use MacPorts or fink or anything like it.
- download and extract pip,
python setup.py install
pip install virtualenv Django django-piston south django-audit-log django-haystack httplib2 lxml
- Ah mac 10.6 has a decent libxml2 and libxslt so lxml just installs. What a breeze.
- download and install 64-bit mysql .dmg from mysql.com, also install preference pane
- Edit
~/.profile
, setCLICOLOR=yes
, set PATH, add/usr/local/bin/mysql
to path,source ~/.profile
- again, I have years of accumulated stuf in my bash profile that I’m dumping. It’s amazing how fast bash starts when it doesn’t have to execute a gazillion lines of shell script…
- code>pip install MySQL-python,
install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib /Library/Python/2.6/site-packages/_mysql.so
- take care of the many dependencies for yum, mostly standard
./configure && make && make install
of- pkg-config
- gettext
- libiconv
- gettext again,
--with-libiconv-prefix=/usr/local
- glib,
--with-libiconv=gnu
- popt
- db-5.1.19.tar.gz,
cd build_unix && ../dist/configure --enable-sql && make && make install
,cp sql/sqlite3.pc /usr/local/lib/pkgconfig/
,cd /usr/local/BerkeleyDB.5.1/include && mkdir db51 && cd db51 && ln -s ../*.h .
- neon,
./configure --without-gssapi --with-ssl
- rpm (5.3),
export CPATH=/usr/local/BerkeleyDB.5.1/include
,sudo mkdir /var/local && sudo chown $USER /var/local
,./configure --with-db=/usr/local/BerkeleyDB.5.1 --with-python --disable-nls --disable-openmp --with-neon=/usr/local && make && make install
pip install pysqlite pycurl
- urlgrabber,
sudo mkdir /System/Library/Frameworks/Python.framework/Versions/2.6/share && chown $USER sudo mkdir /System/Library/Frameworks/Python.framework/Versions/2.6/share && python setup.py install
- intltool
- yum-metadata-parser,
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig; python setup.py install
- install yum. Yum comes without decent install scripts (the idea is you install it from rpm). I did some hacks to get somewhere reasonable:
cat Makefile | sed -E -e 's/.PHONY(.*)/.PHONY\1 install/' > Makefile.new mv Makefile.new Makefile cat etc/Makefile | sed -E -e 's/install -D/install/' > etc/Makefile.new mv etc/Makefile.new etc/Makefile make DESTDIR=/usr/local PYLIBDIR=/Library/Python/2.6 install mv /usr/local/Library/Python/2.6/site-packages/* /Library/Python/2.6/site-packages/ mv /usr/local/usr/bin/* /usr/local/bin/ mkdir /usr/local/sbin mv /usr/local/usr/sbin/* /usr/local/sbin/ rsync -av /usr/local/usr/share/ /usr/local/share/ rm -Rf /usr/local/usr/ cat /usr/local/bin/yum | sed -E -e 's|/usr/share/yum-cli|/usr/local/share/yum-cli|' > /tmp/yum.new mv /tmp/yum.new /usr/local/bin chmod +x /usr/local/bin/yum
That’s how far I got last night, resulting in 86GB of disk use (most of which is VMs and iTunes library), just enough to be productive on my current $work project. I’m sure there’s weeks of tuning in my future.