Installroot Parameter
Description
The --installroot
parameter is used to specify an alternative installroot,
relative to where all packages will be installed. Think of it like doing
chroot <root> dnf
, except using --installroot
allows DNF5
to work
before the chroot is created.
cachedir, log files, releasever, and gpgkey are taken from or stored in the installroot. GPG keys are imported into the installroot from a path relative to the host which can be specified in the repository section of configuration files.
configuration file, reposdir, and vars are taken from inside the
installroot, unless the command-line argument --use-host-config
is
passed, in which case the configuration and environment from the host system
will be used.
Note: When a path is specified within a command line argument
(--config=CONFIG_FILE_PATH
in case of configuration file,
--setopt=reposdir=/path/to/repodir
for reposdir,
--setopt=logdir=/path/to/logdir
for logdir, or
--setopt=varsdir=/paths/to/varsdir
for vars), then this path is always
relative to the host with no exceptions. pluginpath and pluginconfpath are
relative to the host.
Note: You may also want to use the command-line option --releasever=RELEASEVER
when creating
the installroot, otherwise the $releasever value is taken from the rpmdb within the installroot
(and thus it is empty at the time of creation and the transaction will fail). If --releasever=/
is used, the releasever will be detected from the host (/) system. The new installroot path at the
time of creation does not contain the repository, releasever and dnf.conf files.
On a modular system you may also want to use the --setopt=module_platform_id=<module_platform_name:stream>
command-line option when creating the installroot, otherwise the module_platform_id
value will be
taken from the /etc/os-release
file within the installroot (and thus it will be empty at the time of
creation, the modular dependency could be unsatisfied and modules content could be excluded).
Examples
dnf5 --installroot=INSTALLROOT --releasever=RELEASEVER install system-release
Permanently sets the
releasever
of the system in theINSTALLROOT
directory toRELEASEVER
.dnf5 --installroot=INSTALLROOT --setopt=reposdir=PATH --config /path/dnf.conf upgrade
Upgrades packages inside the installroot from a repository described by
--setopt
using configuration from/path/dnf.conf
.