How to in-place upgrade from openSUSE Leap 42.3 to 15.0

Following along in my line of “Readers Digest” versions of the official Opensuse upgrades procedures (here are a couple of my past ones: 11.1, 11.2, 11.4, 12.1, 12.2, 12.3, 13.1, 13.2, 42.1, 42.2, and 42.3)… Here’s the latest for upgrading in-place from Suse Leap 42.3 to Leap 15.0 below. Just be sure to run each of these lines one-at-a-time, not like a script.

And please… if you don’t know what you’re doing, please don’t do this. This process does not take many special conditions into account, since it is a simplified version. There’s a link at the end for the official documented instructions if you need further help. Now, let’s get to it:

# Make a snapshot before you proceed!
# Run the following as the root user, or insert all your sudo commands if you like
# Please ensure you have space to do an upgrade!
df -h
# If you can, do a final update (if the repos still exist)...
zypper ref;zypper up
# Now check your repos. Look for anything custom, and note it for later if so...
zypper lr --url
# Remove anything you don't need, for example:
zypper rr devel_languages_python
# Now, we actually do the UPGRADE…
# Back up all the old repos, just in-case...
cp -Rv /etc/zypp/repos.d /etc/zypp/repos.d.42.3
# Convert all the old repos to new...
sed -i 's/42.3/15.0/g' /etc/zypp/repos.d/*
# Verify the repos...
zypper lr --uri
# If you're like me, you have this old key that needs to be removed... 
rpm -e gpg-pubkey-3d25d3d9-36e12d04
# Import the keys for the repos and refresh the local cache…
zypper --gpg-auto-import-keys ref
# Do a Distribution UPgrade... and I like the option to download all the packages first, before installation (if space is available)...
zypper dup --download-in-advance
# And now that the upgrade is done, add back any custom repos at this point (optional, depends on your environment) 
# And reboot (and watch from a console)...

init 6

My advice is to make sure you have multiple terminal sessions during the upgrade, in case something goes a little strange, and make sure you have space for the kernel and all the files (especially if you have small /boot partitions).

IMPORTANT:  This time around, I ran into two unique issues:

  1. First, all my servers had an old key that had to be removed, other wise I got a non-essential but annoying error with every single package install…  See this great post for an explanation & fix.
  2. Second, and more importantly, every one of my upgrades broke GRUB and would not boot.  So, I had to download and mount the “Net” ISO, then use the rescue system, mount the installed system, and fix the bootloader for each server upgraded.

Thanks to the folks at Suse; and here’s the thorough and detailed guide that I adapted this from:


Leave a Comment

Your email address will not be published. Required fields are marked *