emerge: add --quickpkg-direct option
Enable use of installed packages directly as binary
packages. This is similar to using binary packages produced by
quickpkg(1), but installed packages are used directly as though
they are binary packages. This option only works in combination
with the --root=DIR option, and it comes with the caveat that
packages are only allowed to be installed into the root that
is specified by the --root=DIR option. The other root which
serves as a source of packages is assumed to be immutable
during the entire operation (similar to --buildpkgonly mode).
Default behavior for handling of protected configuration files
is controlled by the QUICKPKG_DEFAULT_OPTS variable. When a
configuration file is not included because it is protected, an
ewarn message is logged.
Suggested use cases:
* Install packages from a buildtime container into an empty root,
in order to create a minimal runtime container (which need not
include a package manager). In a multi-stage Dockerfile, install
runtime files to an empty directory in the build stage, and in
the final stage use COPY to populate a container with the
contents of that directory. For greater efficiency, use buildah
to install directly into a mounted container, avoiding the COPY
step. Use the emerge --usepkgonly and --ignore-soname-deps=n
options to account for soname dependencies, allowing implicit
system dependencies such as glibc to be automatically pulled
into the runtime image.
* Enable a live usb, iso, or pxe image to act as a binary
installer that uses packages installed in the live image as a
source of binary packages.
Bug: https://bugs.gentoo.org/699986
Signed-off-by: Zac Medico <zmedico@gentoo.org>
10 files changed