Do you keep track of the programs you compile and install?
If yes, what do you keep, the configure output, the install output?
Is there some "best practice" regarding this matter?
If it's something we can compile and build ourself, we tend to roll out RPM/DEB packages ourself. This way we can benefit from using some of the tools used by the distribution to test their packages (doing the build in a clean chroot, lintian for automatic checks on Debian packages and so on).
Plus we can set up our own package repository to deploy the software to the nodes and we can integrate them into tools like puppet. Easily keeping track on the version of the software currently installed through a common set of tools also used by the distribution is also a big bonus.
This approach has a somewhat steeper learning-curve than the traditional "./configure; make/ make install" but it is thoroughly documented and makes software deployment really easy.
The downside is that this approach is not that feasible when it comes to proprietary, pre-compile software.
I wrote some scripts to make this easier.. If we're rebuilding a package into a DEB file, then a bunch of steps happen:
I'll be making the build-deb and so on scripts opensource soon!