Install destinations
When an ebuild runs the src_install
phase, it installs an image of the
package in question from ${S}
into ${D}
. Ebuilds must not attempt to
perform any operation upon the live filesystem at this stage — this will break
binaries, and will (often) cause a sandbox violation notice.
When installing, Portage will install the image in ${D}
into ${ROOT}
. By
default, ${ROOT}
points to /
, although the user can alter this — for
example, the user may be building a minimal image for another system in a
different location. If your package must operate on the live filesystem (for
example, to create some cache files during pkg_postinst
), you must ensure
that you prefix any paths with ${ROOT}
.
When inside pkg_preinst
, the image to be installed can be accessed under
"${D}"
.