Upgrade process from Leap42.3 to Leap15.0

Although the upgrade process is described in the official documentation of openSUSE, I thought of describing the step by step procedure that I followed to upgrade from Leap42.3 to Leap15.0. I have followed the exact same process inside a virtual machine and in a laptop, and in both cases it worked out of the box. However, I cannot guarantee that this will work for you.
Here are the steps that I followed:

1.- You may want to backup the old configuration of repositories, just in case you need to revert to the old version:

cp -Rv /etc/zypp/repos.d /etc/zypp/repos.d_leap42.3

2.- Remove old repositories. First check which ones you have:

zypper repos -d

3.- Check the names and remove all of them with:

zypper rr <name>

4.- Check which repositories are still in the system:

zypper repos -d

5.- Eliminate any remaining old repos using the same process.
(you should end up with an empty list of repositories)

zypper rr <name>

6.- Add the new repositories for the last version. Actually only two repositories are needed for the upgrade process. You should configure only these two:

openSUSE-Leap-15.0-OSS: the main repository, contains open source software only.

URL: http://download.opensuse.org/distribution/leap/15.0/repo/oss/

To configure this repository execute the command:

zypper ar -f -p 50 -n “Leap15.0_Oss”

openSUSE-Leap-15.0-Update: contains official updates for OSS packages.

URL: http://download.opensuse.org/update/leap/15.0/oss/

To configure this repository execute the command:

zypper ar -f -p 50 -n “Leap15.0_Update”

7.- Check that configuration of repositories is correct:
(only the above two repositories should be present)
(also check with a browser that they point to existing addresses)

zypper repos -d

8.- Be sure all repositories are updated:

zypper refresh

9.- Update Zypper and the package management itself with:

zypper patch --updatestack-only

10.- Now download only the new packages, but do not perform installation yet:

zypper dup --download-only

11.- For the actual installation it is safer to run the upgrade from runlevel 3:


login as root

systemctl isolate runlevel3.target

12.- Verify you current runlevel:
(it should be 3)


who -r

13.- Run the actual distribution upgrade with:
(the --no-refresh option is needed so that installation will only
use the previously downloaded packages, and there is no need
for network connectivity, which may not be present in runlevel 3)

login as root

zypper --no-refresh dup

14.- Reboot the system with:

systemctl reboot

15.- You may want to add other repositories you normally use.
(these are examples of what I use, yours may be different)
(for sure you would want Leap15.0_Non_Oss and Leap15.0_Update_Non_Oss)

zypper ar -f -p 50 -n “Leap15.0_Non_Oss”

zypper ar -f -p 50 -n “Leap15.0_Update_Non_Oss”

zypper ar -f -p 80 -n “Packman”

zypper ar -f -p 80 -n “MEGAsync”

zypper ar -f -p 80 -n “Skype”

16.- Check configuration of repositories:

zypper repos -d

zypper refresh

17.- Update the new system:

zypper lu
zypper update

18.- I normally force ffmpeg from Packman repository to be sure I have latest codecs:

zypper install --from packman ffmpeg

Thanks for sharing. I guess you want some feedback here. Well.
You can use

zypper rr 1 2 3 4 5 6 

Personally ( but I use btrfs ) I’d go for using sed or some other editor to change 42.3 to 15.0 , on all repos, allowing vendor change.