TUKIT.CONF(5)
π 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
- fedora 44: tukitd 6.0.0-1.fc44 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms