I just downloaded and installed Ubuntu Server 9.04 in a VM Image strictly for the purposes of setting up a simple local dev environment on my MacBook. This is the base image, which I want to configure with some useful but general capabilities. The features are:
- LAMP stack, SSH server, svn, git, python, ruby, capistrano, etc
- my user account and keys set up for easy ssh access and sudo provileges
- netatalk and avahi-daemon
The first two points are pretty standard; the Ubuntu Server install allows you to add LAMP during the installation process, as well as Open SSH Server. Easy, right?
So what’s up with the 3rd point? As I am using OS X and VMWare Fusion, I can take advantage of the Mac platform to allow some ease-of use. If you’re not familiar with Bonjour and AFP, it’s quite slick. First off, the VM shows up in Finder’s left-side bar:
Using avahi and afp this way allows me to edit files in Komodo as if they are local, which has important advantages over remote file editing via sftp or similar. The main advantage is of course that I still get SVN status on my files via Komodo.
The other interesting advantage doesn’t have to do with Netatalk / AFP, but just with how DNS works over Bonjour.
The procedure I used to get this running has been documented here with an alternative version here. the upshot is that for Netatalk to work with Leopard, you need to compile it yourself with SSL support:
sudo apt-get install dpkg-dev sudo apt-get install devscripts sudo apt-get install libssl-dev apt-get source netatalk sudo apt-get build-dep netatalk sudo apt-get install cracklib2-dev cd netatalk-2.0.3 DEB_BUILD_OPTIONS=ssl debuild sudo dpkg -i ../netatalk_2.0.3-3ubuntu1_i386.deb
You’ll also wnat to set the custom Netatalk package to ‘hold’:
echo "netatalk hold" | sudo dpkg --set-selections
The nice thing abou this image now is that I can tuck away a copy of it for any future project and know that, with a few configuration changes, I can get a project running on the VM and be happily coding away toute suite.
Next steps? I’m going to finally start doing a few things I’ve wanted to get around to for a while, in particular managing my shell environment customizations / aliases / scripts in svn, and easily deploying applications to the vm using Capistrano scripts.
Title image courtesy of Glenn Carstens-Peters on Unsplash.