---
name: "dnf5-installroot"
section: "7"
platform: "linux"
package: "dnf5"
version: "5.4.6.0-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/dnf5-installroot"
---

# dnf5-installroot(7)

Installroot Parameter

## NAME

dnf5-installroot - 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*, *system\_cachedir*, *log* files, *releasever*, and *gpgkey* are taken from or stored in the installroot. OpenPGP 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=cachedir=/path/to/cachedir** for *cachedir*, **--setopt=system\_cachedir=/path/to/system\_cachedir** for *system\_cachedir*, **--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 **--use-host-config** 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 the **INSTALLROOT** directory to **RELEASEVER**.

- **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**.

## Author

See AUTHORS.md in dnf5 source distribution.

## Copyright

Contributors to the dnf5 project.
