Home

obsoletesprovides

Obsoletes and Provides are metadata fields used by many Linux package management systems to describe relationships between packages. The combined concept of these fields—sometimes informally referred to as obsoletesprovides—covers how a package can declare both a virtual capability and a replacement for another package.

Provides is used to declare that a package offers a given virtual package or capability. This allows

Obsoletes is used to indicate that a package supersedes or replaces one or more other packages. When

In practice, maintainers often combine Provides and Obsoletes (and sometimes Replaces) to smooth upgrades and transitions.

Notes: The exact behavior depends on the package management system (for example, Debian-based dpkg/apt versus RPM-based

dependencies
to
be
expressed
in
terms
of
abstract
features
rather
than
concrete
package
names,
enabling
substitutions
among
multiple
actual
packages
that
deliver
the
same
functionality.
For
example,
a
mail
transport
agent
might
declare
Provides:
mail-transport-agent,
so
any
package
that
depends
on
that
capability
can
be
satisfied
by
any
suitable
MTA
without
caring
which
specific
one
is
installed.
a
package
with
an
Obsoletes
field
is
installed,
the
package
manager
may
remove
or
deprioritize
the
obsoleted
packages
to
avoid
conflicts
and
to
encourage
a
migration
path.
This
is
commonly
used
during
transitions,
for
example
when
a
new
package
replaces
an
older
one
as
the
preferred
implementation.
A
newer
package
might
Provides:
mail-transport-agent
to
satisfy
existing
dependencies,
while
Obsoletes:
old-mta
communicates
that
the
old
package
is
superseded.
Best
practices
include
explicitly
declaring
the
virtual
capability
with
Provides
and
carefully
using
Obsoletes
with
or
without
Replaces
to
ensure
clean
upgrades
and
minimal
breakage
for
users.
tools),
but
the
general
concepts
of
virtual
provides
and
replacement
through
obsoletes
are
widely
supported.