296Part IIIChoosing and Installing a Linux (Web server) DistributionInside Debian
296Part IIIChoosing and Installing a Linux DistributionInside Debian GNU/LinuxLike most modern operating systems, software programs in Debian GNU/Linux arebundled into packages for easy distribution and management. The package formatand management tools used in Debian GNU/Linux were created by the DebianProject and are arguably the most sophisticated of their type. Additionally, carefuladherence to packaging policies and quality-control measures ensure compatibilityand help make upgrades go smoothly. Debian is one of very few operating systemdistributions in which all components (except the kernel) can be upgraded withoutrebooting the system. Debian PackagesDebian packages come in two forms: binary and source. Binary packages containfiles that can be extracted directly onto the system by the package managementtools. Source packages contain source code and build instructions that the Debianbuild tools use to create binary packages. In addition to program data files, Debian packages contain control data that enablethe package management tools to support advanced features: .A main controlfile contains version and package interrelationship data. Theversion can be compared to an installed version of the same package to deter- mine whether an upgrade is needed. The interrelationship data tell the packagemanagement tools which packages must or cannot be installed at the sametime as this package. Package interrelationship fields include Depends, Conflicts, Replaces, Provides, Recommends, Suggests, and Enhances. For a complete list of con- trol file fields, see http://debian.org/doc/debian-policy/ch-controlfields.html. .Optional preinst, postinst, prerm, and postrmfiles can instruct the packaging tools to perform functions before or after package installation orremoval. Most packages containing daemons (such as Apache HTTPD) includea postinstscript that starts the daemon automatically after installation. .A conffilesfile can designate specific files in the package as configurationfiles, which are not automatically overwritten during upgrades. By default, allfiles under the /etc/ directoryare configuration files. Two special package types, meta and virtual, also exist. Meta packages are standardbinary packages that depend on a number of other packages. These can be used asa convenient method for installing a set of related packages. Note16_