tukit.conf - Man Page

tukit configuration file

Synopsis

/etc/tukit.conf
/etc/tukit.d/*.conf

Description

These configuration files control and define the behavior of tukit(8).

The tukit.conf file uses INI style assignments, e.g. PARAMETER=value.

A reference file (also used for reading the default values) can be found in /usr/etc/tukit.conf.

Configuration file snippets (to overwrite only parts of the configuration) can also be used in /etc/tukit.d/*.conf.

Options

The following options are available in the tukit section:

DRACUT_SYSROOT

Directory where dracut will mount the sysroot. The current default value is /sysroot.

LOCKFILE

Lock file path for tukit. By default it is /var/run/tukit.lock.

OVERLAY_DIR

Directory where the /etc overlays are stored. By default it is /var/lib/overlay.

BINDDIRS

Bind mount additional directories into the update environment; to add multiple directories add a separate entry with a different id between the brackets for each.

Be aware that only the root file system is managed in a transactional way, i.e. any additional mounts added here will *not* get a seperate snapshot (so their contents cannot be rolled back) and the changes will be visible to the running system immediately (breaking the transactional concept and possibly resulting in a mix between old and new files if there are also changes to the root file system until the next reboot).

By default only /opt will be bind-mounted, as this directory is often used by third-party packages, but the applications in there are usually self-contained.

Example: To mount additional directories such as /usr/local or /var/lib/images into the update environment, add the following lines to the configuration file:

              BINDDIRS[0]="/opt"
              BINDDIRS[1]="/usr/local"
              BINDDIRS[2]="/var/lib/images"

If a directory contains submounts, these have to be mounted separately. For example if for some reason /usr/local should contain /usr/local/extra that is located on a different partition, both mounts will have to be listed:

              BINDDIRS[0]="/opt"
              BINDDIRS[1]="/usr/local"
              BINDDIRS[2]="/usr/local/extra"
              BINDDIRS[3]="/var/lib/images"

Instead of numbers it is also possible to use names for the array:

              BINDDIRS[0]="/opt"
              BINDDIRS[usrlocal]="/usr/local"
              BINDDIRS[extra]="/usr/local/extra"
              BINDDIRS[images]="/var/lib/images"

Note that in some situations one may be tempted to expose /var/lib directly, but this can be dangerous.

/var/lib contains a lot of data, including databases, docker images or sssd data. That data is often bound to a specific version of the software. Exposing it during an upgrade can make that an RPM post-script will make changes in place that will touch the live system, that will be directly visible to the user, breaking the guarantees that transactional-update provides.

See Also

transactional-update.conf(5)

Author

Ignaz Forster <iforster@suse.com>

Info

10/16/2024 transactional-update