config-package-dev is a tool for building Debian configuration
packages, that is, packages that configure other Debian packages
already on your system. It is an alternative to configuration-management
tools (e.g., Ansible, Chef, Puppet, cfengine) that integrates cleanly
with the Debian packaging system: you can apply configuration by
installing a configuration package, and remove it cleanly by
uninstalling it. config-package-dev uses
dpkg-divert to inform the
packaging system that it is changing files owned by another package,
which means that your changes remain applied even when the original
package is upgraded.
Configuration packages are particularly useful for sites using Debian or Ubuntu (or another dpkg-based distribution) who are already running their own internal apt repository. You can provide site defaults and configuration through your existing package-update processes, and make sure systems are up-to-date in both software and configuration by checking what versions of packages they have installed. (config-package-dev is not intended for use by packages in Debian itself.)
config-package-dev is a project of MIT SIPB, and was originally developed for the Debathena project to provide functionality to access MIT computing services (e.g., Kerberos and AFS configuration) on privately owned machines.
To get started, install
config-package-dev from your package manager;
we support the versions in the Debian and Ubuntu archives. Take a look
at the examples, or check out the full
If you're using config-package-dev, please also join the
Feel free to report bugs or submit patches either on GitHub or on the Debian bug tracker.