|Table of Contents|
Nomenclature and concepts
Deb files have a "control" file with a set of fields that contain the dependency data:
- Depends - States a required dependency on another plugin with optional version specification
- Recommends - State recommended depenendecy
- Suggests - States a suggested dependency
- Pre-Depends - States a dependency that has to be configure before installation
- Build-Depends - Not relevant
- Build-Depends-Indep - Not relevant
Each field list a set of packages separated with comma (","). Where a dependency is either one of more packages, each option is separated with a bar ("|").
Depends: libc6 (>= 2.2.1), exim | mail-transport-agent
In addition Deb support a "virtual package" concept where more than one package can "implement" a package name. This give the user an option to choose an implementation when a package installed.
For example, both "openjdk", "sun-jdk" and "gcj" may packages may Provide "java".
Deb also has a "Replaces" flag with two purposes:
- "this package replace files in package foo"
- "this package replaces this package entirely"
- Requires, which tracks the capabilities a package requires
- Provides, which tracks the capabilities a package provides for other packages
- Conflicts, which describes the capabilities that if installed, conflict with capabilities in a package
- Obsoletes, which describes the capabilities that this package will make obsolete
provides defines a virtual package which is provided by the package being built
requires identifies a package that is required to be installed for the package being built to operate correctly