Packages can support having multiple versions installed simultaneously. This is
useful for libraries which may have changed interfaces between versions — for
gtk+ package can install both versions
parallel. This feature is called slotting.
Most packages have no need for slotting. These packages specify
in the ebuilds. This is purely a convention; the package manager does not treat
0 any different from other slot values.
SLOTis a mandatory variable and must not be empty.
Portage permits at most one instance of a package installation per
value. For example, say we have the following:
Then the user could have, say,
foo-2.0 installed in
parallel, but not
foo-1.2. Note that it is entirely
possible that the user may have
foo-2.0 installed and no
foo-1.x at all.
DEPEND upon a package in a specific slot, refer to
Sometimes a package installs a library that changes interfaces between versions,
but it's undesirable or inconvenient to allow some of these versions to be installed
EAPI=5 and higher, this situation can be handled by
using sub-slots, which are delimited from the regular slot by a
SLOT="slot/subslot". Packages can
request to be
automatically rebuilt when the subslot of a runtime dependency changes.
For example, suppose package
foo installs a library whose soname is
different for different versions. It would be reasonable to use the soname version
as the sub-slot name:
Other ebuilds that install binaries which link to
can then request to be automatically rebuilt when the installed version of
foo:1 changes sub-slots — for example, when the user
If an ebuild does not explicitly declare a sub-slot, the regular slot is used as the value of the sub-slot by default.
libpng:0=). Therefore, it's best if you start using sub-slots in the library when the existing library interface changes.