If you want to track system changes for reproducing them, dpkg-query may be of help. Running it with the same parameters on fresh and completed install, saving the outputs, and taking the diff will give you a rather precise picture of what has happened. Because Debian package structure often changes between releases, you may not be able to do it exactly the same way next time, but you have good hints. If you use more than one persistent store, you can also obtain persistence between releases (Think for example Java/Tomcat or SQL Developer.)