transactional-update, transactional-update.service, transactional-update.timer — Apply updates to the system in an atomic way via transactional updates.
transactional-update [--help] [--version]
transactional-update [cleanup] [ up | dup | patch | bootloader | initrd ] [kdump] [reboot]
transactional-update [cleanup] [reboot] pkg install | remove | update <RPM>...<RPM>
transactional-update rollback [number]
transactional-update updates the system in a transactional way, which means: it is atomic, so either the patches are fully applied or nothing is changed. The update does not influence your running system and it can be rolled back. To activate the changes, the system needs to be rebooted.
This is archived by creating at first a snapshot of the system. Afterwards, this snapshot is updated with zypper. Only if there were updates and they could be applied without error, the snapshot will be the default with the next reboot.
Changes made to the running root filesystem after transactional-update was started are lost after the next reboot. For this reason, after an successfull update, the system should be rebooted as fast as possible.
For easier maintenance of big clusters, transactional-update is regular run by systemd.timer(5). The time, at which the command is run, can be modified by a configuration file /etc/systemd/system/transactional-update.timer.d/local.conf. See systemd.unit(5) for more informations.
If the current root filesystem is identical to the active root filesystem (means after a reboot, before transactional-update creates a new snapshot with updates), all old snapshots without a cleanup algorithm get a cleanup algorithm set. This is to make sure, that old snapshots will be deleted by snapper. See the section about cleanup algorithms in snapper(8).
If new updates are available, a new snapshot is created and zypper dup --no-allow-vendor-change is used to update the snapshot. Afterwards, the snapshot is activated and will be used as the new root filesystem during next boot.
grub2-mkconfig(8) is called to create a new /boot/grub2/grub.cfg configuration file for the bootloader.
A new snapshot is created, the bootloader configuration updated and the boorloader newly written.
A new initrd is created in a snapshot.
A new initrd for kdump is created in a snapshot.
On systems which are registered against the SUSE Customer Center (SCC) or SMT, a migration to a new version of the installed products can be made with this option. This is done in an interactive mode.
If new updates are available, a new snapshot is created and zypper patch is used to update the snapshot. Afterwards, the snapshot is activated and will be used as the new root filesystem during next boot.
<RPM> ... <RPM>¶
A PTF or other packages in RPM format can be installed in the system.
<RPM> ... <RPM>¶
A PTF or other installed packages in RPM format can be removed from the system.
<RPM> ... <RPM>¶
Packages installed as RPMs can be updated.
If a new snapshot with updates was created, the system should be rebooted. This option will trigger the necessary reboot. If the rebootmgrd(8) is running, transactional-update will tell the daemon to reboot the system according to the configured policies. Else systemctl reboot is called.
Sets the default subvolume. On systems with read-write filesystem,
rollback is called. On a read-only filesystem,
without argument, the current system is made the new default root
filesystem. Else the snapshot with
number is made the
new default root filesystem. On a read-only filesystem, no additional
snapshots are created.
After all actions are done, before the snapshot with the changes is unmounted and switched to read-only, a shell is started in the new snapshot as chroot environment for testing and debugging.
If new updates are available, a new snapshot is created and zypper up is used to update the snapshot. Afterwards, the snapshot is activated and will be used as the new root filesystem during next boot.
Display help and exit
Output version information and exit
Only RPMs, which are fully part of the snapshot of the root filesystem, can be updated. If RPMs contains files outside of the snapshot, the update itself can break or can break the system.
Since all changes to the root filesystem will go lost after creating the snapshot for the update, the system should be rebooted as fast as possible after the update finished.
RPMs, where a license needs accepted for, cannot be updated.
If PTFs get installed or removed, and transactional-update is called again before the next reboot and updates packages, the changes to the PTFs are lost and need to be redone with the next reboot. After installing or removing PTFs, the system should be immeaditly rebooted.
If /etc/default/grub was modified by an administrator, the modified version is copied into the new snapshot.
If during the update process /etc/passwd, /etc/group or /etc/shadow are modified and /usr/etc exists, the modified files are copied into /usr/etc and can be accessed by tools like libnss_usrfiles. This prevents that the new accounts are hidden by local modifications by the system administrator.