2009-03-17

Keeping track of manually installed packages in Debian

This is how I keep track of manually installed packages in Debian:

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