Terrific concept. What tools (if any) exist to do this kind of thing on Linux VM? Do they work equally well for non Ruby environments (I'm thinking specifically Python/Django)?

I've spent the last week mucking around with VMware/bitnami to try to get a nice clean Python/Django/Pycharm VM for myself (with a template Django project that gracefully does both development and deployment). I'm almost done but what a long hard slog it's been.

In theory this should be super easy on most Linux systems because of the software repos.

On Debian based systems, on your existing development machine, you can do:

    dpkg --get-selections > installed_stuff.txt
Then copy the file "installed_stuff.txt" to the new machine/VM and do:

    dpkg --set-selections < installed_stuff.txt

It becomes a little more difficult when there are dependencies that aren't in the package system.

Another thing I've found useful is to have a git repo with my config files. Then on a new machine I can clone the repo and have access to all of them. I've been meaning to write a script that copies everything to the right location, but haven't got around to it yet.

Check out http://dotfiles.github.com Most scripts have these bootstrap files, my dotfiles and more are based on this repo https://github.com/mathiasbynens/dotfiles with a very good setup script.