On how to upgrade a transactional Leap server to the next version.
Normally, the System upgrade page in the openSUSE wiki is a good resource on how to upgrade a system to the next major/minor version. However, the documentation part on transactional server is still sparse. This short blog post shows, how I managed to upgrade my Leap 15.2 transactional servers to 15.3 without much fuzz.
TL;DR
Do the upgrade prodecure for a non-transactional system with a transactional-update shell
:
# transactional-update shell
# zypper --releasever=15.3 dup --download-in-advance
# reboot
# transactional-update dup # Ignore the 'Subprocess failed. Error: Failed to import public key' errors
# reboot
Check if the upgrade was successful:
# cat /etc/os-release | grep VERSION
VERSION="15.3"
Walkthrough
In principle we are doing exactly the same procedure as for a non-transactional system, but we need to run this in a read-write snapshot of the system. For that we use the integrated shell
feature of transactional-update
# transactional-update shell # Starts a shell in a new rw snapshot
Within this shell, we can do the typical update command
# zypper --releasever=15.3 dup --download-in-advance
This should download an install all relevant updates for the upgrade. So far so good. The upgrade went well and after restarting the system I was in a new 15.3 system:
# cat /etc/os-release | grep VERSION
VERSION="15.3"
VERSION_ID="15.3"
However, not all packages have been updated, as a new run of transactional-update dup
reveals:
...
Checking for newer version.
Subprocess failed. Error: Failed to import public key [70AF9E8139DB7C82-5f68629b] [SuSE Package Signing Key <build@suse.de>] [expires: 2024-09-20]
...
However after this round and another reboot, the system was fine:
# transactional-update dup
Checking for newer version.
transactional-update 3.2.2 started
Options: dup
...
zypper: nothing to update
...
transactional-update finished
After this update I also had the new SUSE Linux Enterprise 15 repos within the system
9 | repo-sle-debug-update | Update repository with debuginfo for updates from SUSE Linux Enterprise 15 | No | ---- | ----
10 | repo-sle-update | Update repository with updates from SUSE Linux Enterprise 15 | Yes | (r ) Yes | Yes
So all in all, that’s it. Using transactional-update shell
upgrading a transactional server is as easy as upgrading a classical one.