Everytime I need to install a package, I create a file with the same name as the package name.
Examples:
$ touch /usr/local/etc/packages/list/qmail
$ echo 2009-03-17 J requested ipsvd for his app > /usr/local/etc/packages/ipsvd
$ make -f /usr/local/etc/packages/Makefile
apt-get install "ipsvd"
touch /usr/local/etc/packages/list/.ipsvd
apt-get install "qmail"
touch /usr/local/etc/packages/list/.qmail
And if you do another make:
$ make -f /usr/local/etc/packages/Makefile
make: Nothing to be done for `install-packages'.
In practice, I use aliases so I don't have type long paths. Here's how to set it up. Just copy-and-paste the code below:
mkdir -p /usr/local/etc/packages/list
cd /usr/local/etc/packages
cat > Makefile <<EOF
packages=/usr/local/etc/packages/list/*
install-packages: \$(packages)
\$(packages): /usr/local/etc/packages/list/%: /usr/local/etc/packages/list/.%
/usr/local/etc/packages/list/.%:
`echo -e \\\t`apt-get install "\$*"
`echo -e \\\t`touch \$@
EOF