April 26, 2019

DistributionWatch Review: Debian GNU/Linux 2.1 - page 7

Introducing Debian GNU/Linux

  • December 22, 1999
  • By Ed Petron

Software packages often depend on others, such as runtime support libraries, in order to operate. Debian packages contain control files in which dependency information is recorded. The control files are checked by dpkg when installing packages in order to make sure that these dependencies are satisfied. If dependencies are not satisfied, dpkg will refuse to install the package and print error messages indicating which packages need to be installed first. Dependency information is also checked by dpkg when attempting to remove a package in order to avoid disabling one or more packages which depend on the one being removed.

In many cases, a package may depend on specific versions of other packages. For example, the current version of the interaction automation package expect depends on versions greater than or equal to 8.0.4 of both tcl.8.0 and tk8.0. The package control files contain dependency information describing these situations. In other cases, packages need support satisfiable by several alternatives. For example, the mail handler exmh requires support from a wish interpreter.

There are several versions of the Tk toolkit that provide a wish interpreter through what is known as a virtual package. Finally, installing a package may conflict with another, such that both should not be installed at the same time. Package files contain information concerning these cases as well.

Debian's sophisticated package management greatly simplifies software installations and upgrades and contributes greatly to stability and reliability of the system. Of course, it's not entirely foolproof, given the fact that much of the dependency information must be entered and maintained manually by the package maintainers. Even so, it eliminates much of the need for a Debian user to be an expert on interdependencies between various software components.

Most Popular LinuxPlanet Stories