next up previous contents index
Next: Running dpkg Up: dpkg Previous: dpkg   Contents   Index

Introduction

The dpkg program is the workhorse of the Debian packaging system. When run with root privilege, it installs and removes groups of software files called packages. For developers, it builds packages. For normal users, dpkg supplies information on specific packages, the contents of any particular package, or a list of the installed packages on the system. It does all of these package management tasks and more. It is used by dselect, another application discussed in this chapter, to perform the actual installation of packages. Many Perl programs and scripts make calls to dpkg as part of their operation. A familiarity with dpkg provides solutions to many general packaging problems. When all other installation methods fail, dpkg is often capable of resolving the problem.

Dealing with the interdependence of packages is one of the major tasks of the Debian Package Management System. The dependency checking features of dpkg are well advanced when compared to other solutions available in the Linux community. What does this mean? It means that, if you use dpkg to attempt the installation of a package, and that package depends for its proper operation on another package that has not yet been installed, dpkg will complain and fail to install the new package. While this may, at first, seem to be a problem, it is actually the solution to the problem. It is far more unsatisfactory to be able to install a package that will not work after it has been installed. This dependency mechanism protects the system from such installations. As dpkg provides information on the package dependency that has not been satisfied, it is a straightforward task to install the dependent packages. Once the dependencies have been satisfied the package will install without problems, and run as expected afterwards. On some systems, one or more of these ``dependent'' packages might only be supplied by a ``local'' version of the software, unknown to the packaging system. There are ways to force dpkg to install the depending package even when it does not know that the dependency is satisfied. These options should be used with extreme care, and an understanding of the consequences. All of these interdependency issues are dealt with by an interface to dpkg called dselect, described in the dselect section starting on page [*].

The following discussion will cover all of the options that can be specified when using dpkg focusing on how to use them. All of the information contained here is available in ``sparse'' form by executing dpkg -h |less. Each of those options will be described in as much detail as possible in the following section.


next up previous contents index
Next: Running dpkg Up: dpkg Previous: dpkg   Contents   Index
Dale Scheetz