Packages can support having multiple versions installed simultaneously. This is
useful for libraries which may have changed interfaces between versions
gtk+ package can install both versions
parallel. This feature is called slotting.
Most packages have no need for slotting. These packages specify
the ebuilds. This is not the same as specifying an empty slot
slot means "disable slotting entirely", and should not be used.
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.
Current versions of portage accept slot and sub-slot names that begin with an
alphanumeric character or
'_', and contain alphanumerics and