I was in a pinch to get a custom Debian iso, and came across a pretty awesome website that allowed me to do exactly what I wanted:
Get a debian 4.0 netinst ISO with emacs and cvs preloaded.. That way, I can load this ISO on a whole BOADLOAD of computers, and not have to worry if each one of those machines has done a “apt-get update && apt-get install emacs cvs”
The how-to can be found here:
http://wiki.debian.org/Simple-CDD/Howto
The directions are a little bit confusing (to me) because, all of the commands reference “sid”, a previous release of debian. Though running on a Debian 4.0 netinst installation, and following all the directions on that webpage, seemed to yield exactly what I wanted: Debian 4.0 (etch) + emacs + cvs preloaded bootable ISO!
There was one place where I screwed up.. On the instruction:
for p in list of packages you want installed ; do echo $p >> profiles/NAME.packages ; done
I did the following (WRONG WAY):
for p in "emacs cvs" ; do echo $p >> profiles/NAME.packages ; done
The script barfs because emacs and cvs the are on the same line in the file NAME.packages.
Using the following should work (CORRECT WAY):
for p in emacs cvs ; do echo $p >> profiles/NAME.packages ; done