Nomenclature and concepts
Deb
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 ("|").
Virtual packages
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".
Replacement
Deb also has a "Replaces" flag with two purposes:
- "this package replace files in package foo"
- "this package replaces this package entirely"
References
Rpm
Reference: http://rpm5.org/docs/rpm-guide.html#ch-dependencies
- 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
Possible mappings
UMP |
Dependency |
Recommends |
Suggests |
Pre-Depends |
Provides |
Conflict With |
Deb |
Depends |
Recommends |
Suggests |
Pre-Depends |
Provides |
|
Rpm |
Requires |
|
|
|
%provides |
%conflicts |
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
conflicts