TUKIT.CONF(5)

πŸ“¦
version 6.0.0 Β· 3 versions
, in fedora 44

πŸ’– NAME πŸ’–

tukit.conf β€” the lil config file that runs the whole vibe for tukit(8). It lives in the TUKIT.CONF(5) section of the manual, bestie. πŸŽ€


✨ SYNOPSIS ✨

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

🌸 DESCRIPTION 🌸

okay so these config files are literally the main characters behind how tukit(8) behaves. They control it, they define it, they are it. πŸ’…

The tukit.conf file uses INI style assignments, like PARAMETER=value. Simple, clean, no notes. ✨

There's a reference file you can peek at β€” it's also the one used for reading the default values β€” and it's chillin' at /usr/etc/tukit.conf. 🫢

You can also drop config file snippets in /etc/tukit.conf.d/*.conf if you only wanna overwrite parts of the configuration. Partial glow-ups only, we love that. 🌈


πŸ‘‘ OPTIONS πŸ‘‘

The following options are available in the tukit section:

  • DRACUT_SYSROOT β€” the directory where dracut will mount the sysroot. The current default value is /sysroot. πŸ¦‹
  • LOCKFILE β€” the lock file path for tukit. By default it's /var/run/tukit.lock. πŸ”’
  • BINDDIRS β€” bind mount extra directories into the update environment. Wanna add multiple directories? Add a separate entry with a different id between the brackets for each one. No cap. ✨
⚠️ bestie, listen: 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 separate 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). It's giving chaos. πŸ’€

By default only /opt will be bind-mounted, because this directory is often used by third-party packages, but the applications in there are usually self-contained. iconic behavior honestly. πŸ’œ

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. Not the move, fr fr. πŸ™ˆ


πŸ”₯ SEE ALSO πŸ”₯


🌟 AUTHOR 🌟

Ignaz Forster <iforster@suse.com> β€” thank you for your service, king πŸ‘‘


and that's the whole page, bestie πŸ’– this came from the transactional-update source, dated 12/01/2025 β€” go forth and configure responsibly πŸŽ€βœ¨

πŸ“¦ where this page comes from