Package relationships

Explicit relationships between packages are support by packaging formats such as ipkg and deb. These relationships include describing conflicting packages and recommended packages.

The following variables control the package relationships in the recipes:

RRECOMMENDS

Used to specify other packages that are recommended to be installed when this package is installed. Generally this means while the recommended packages are not required they provide some sort of functionality which users would usually want.

RCONFLICTS

Used to specify other packages that conflict with this package. Two packages that conflict cannot be installed at the same time.

RREPLACES

Used to specify that the current package replaces an older package with a different name. During package installing the package that is being replaced will be removed since it is no longer needed when this package is installed.

RSUGGESTS

Used to provide a list of suggested packages to install. These are packages that are related to and useful for the current package but which are not actually required to use the package.

RPROVIDES

Used to explicitly specify what a package provides at runtime. For example hotplug support is provided by several packages, such as udev and linux-hotplug. Both declare that they runtime provide "hotplug". So any packages that require "hotplug" to work simply declare that it RDEPENDS on "hotplug". It's up to the distribution to specify which actual implementation of "virtual/xserver" is used.

PROVIDES

Used to explicitly specify what a package provides at build time. This is typically used when two or more packages can provide the same functionality. For example there are several different X servers in OpenEmbedded, and each as declared as providing "virtual/xserver". Therefore a package that depends on an X server to build can simply declare that it DEPENDS on "virtual/xserver". It's up to the distribution to specify which actual implementation of "virtual/xserver" is used.