A Debian package contains files that provide some functionality to a system, administrative metadata, and configuration scripts. It has a data tarball that contains the files and a control tarball that contains the metadata. Configuration scripts allow packages to install, remove, and upgrade smoothly and query users for configuration options using Debconf.