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}".