If you’re reading this, than you’ve been put behind the 8-ball pretty bad.  After all, it’s June of 2021 and openSUSE 13.2 was End-of-Life on January 17, 2017.  If you’ve waited this long, for whatever reason, then as of now, you can still complete this upgrade process.  However, most guides out there imply (because most do not have a date stamp, which is a topic for a whole different day) that this can still be done with just a few commands.  The truth is, that’s not true.  Why? openSUSE 42.1 was End-of-Life on May 17, 2021, just four short months after 13.2 was.  The 42.1 repositories are all offline, as are 42.2.  the openSUSE site only has 42.3 left and it won’t be there for much longer.

So, how to you go about updating your system?  Well, luckily, there are is still one repository out there that has the 42.1 stuff on them, but you have some manual work to do to get it to work.

Step 1

Switch to the Root user of your openSUSE 13.2 box.

Step 2

The first step you’ll need to do, if you can, is to perform a zypper ref and zypper up to make sure your system is as up to date as you can get it.

Step 3

Once you’ve done your update, you’ll need to backup the current repositories as they’re configured.  To do this, run:

tar -czvf /root/13.2_repo_backup.tar.gz /etc/zypp/repos.d/

Step 4

Run zypper lr to check all of your repositories.  If you have any third party repositories, they’ll need to be disabled or removed.  You can always enable them again later if you disable them, which is the most ideal solution.

Step 5

Now, we need to configure the new 42.1 repositories that we can actual reach.  I was only able to locate one at the time of this writing, but it seems there may be more out there. So, first things first:

sed -i ‘s/13\.2/leap\/42\.1/g’ /etc/zypp/repos.d/*

That’ll swap all versions where “13.2” appears in the repository files to “42.1”. However, the paths for these repositories, as well as the domain where they’re kept have changed. So, we need to update them.

Upon running zypper clean and zypper ref, I get an error with my first repository:

linux-53k6:~ # zypper lr
# | Alias                                   | Name                                    | Enabled | GPG Check | Refresh
--+-----------------------------------------+-----------------------------------------+---------+-----------+--------
1 | download.opensuse.org-leap/42.1-non-oss | Update Repository (Non-Oss)             | Yes     | ( p) Yes  | Yes    
2 | download.opensuse.org-non-oss           | Main Repository (NON-OSS)               | Yes     | (r ) Yes  | Yes    
3 | download.opensuse.org-oss               | Main Repository (OSS)                   | Yes     | (r ) Yes  | Yes    
4 | download.opensuse.org-oss_1             | Main Repository (Sources)               | Yes     | (r ) Yes  | Yes    
5 | download.opensuse.org-update            | Main Update Repository                  | Yes     | (r ) Yes  | Yes    
6 | openSUSE-leap/42.1-0                    | openSUSE-leap/42.1-0                    | No      | ----      | No     
7 | repo-debug                              | openSUSE-leap/42.1-Debug                | No      | ----      | Yes    
8 | repo-debug-update                       | openSUSE-leap/42.1-Update-Debug         | No      | ----      | Yes    
9 | repo-debug-update-non-oss               | openSUSE-leap/42.1-Update-Debug-Non-Oss | No      | ----      | Yes    
linux-53k6:~ #

It happens to be repository 1, so we’ll just disable it for now.

zypper mr -d 1

Then after another zypper clean and zypper ref I get another failure, this one about the missing XML file at http://download.opensuse.org/update/leap/42.1/.  Since I’m not sure which repository this is, we’ll check the URIs of the repos:

linux-53k6:~ # zypper lr --uri
# | Alias                                   | Name                                    | Enabled | GPG Check | Refresh | URI                                                                 
--+-----------------------------------------+-----------------------------------------+---------+-----------+---------+---------------------------------------------------------------------
1 | download.opensuse.org-leap/42.1-non-oss | Update Repository (Non-Oss)             | No      | ----      | Yes     | http://download.opensuse.org/update/leap/42.1-non-oss/              
2 | download.opensuse.org-non-oss           | Main Repository (NON-OSS)               | Yes     | (r ) Yes  | Yes     | http://download.opensuse.org/distribution/leap/42.1/repo/non-oss/   
3 | download.opensuse.org-oss               | Main Repository (OSS)                   | Yes     | (r ) Yes  | Yes     | http://download.opensuse.org/distribution/leap/42.1/repo/oss/       
4 | download.opensuse.org-oss_1             | Main Repository (Sources)               | Yes     | (r ) Yes  | Yes     | http://download.opensuse.org/source/distribution/leap/42.1/repo/oss/
5 | download.opensuse.org-update            | Main Update Repository                  | Yes     | (r ) Yes  | Yes     | http://download.opensuse.org/update/leap/42.1/                      
6 | openSUSE-leap/42.1-0                    | openSUSE-leap/42.1-0                    | No      | ----      | No      | cd:///?devices=/dev/disk/by-id/ata-VBOX_CD-ROM_VB2-01700376         
7 | repo-debug                              | openSUSE-leap/42.1-Debug                | No      | ----      | Yes     | http://download.opensuse.org/debug/distribution/leap/42.1/repo/oss/ 
8 | repo-debug-update                       | openSUSE-leap/42.1-Update-Debug         | No      | ----      | Yes     | http://download.opensuse.org/debug/update/leap/42.1/                
9 | repo-debug-update-non-oss               | openSUSE-leap/42.1-Update-Debug-Non-Oss | No      | ----      | Yes     | http://download.opensuse.org/debug/update/leap/42.1-non-oss/        
linux-53k6:~ #

So, the repo using that is the “Main Update Repository”, or #5.  So, we’ll disable it for now as well.

zypper mr -d 5

Another zypper clean and zypper ref I get no errors, but I’ve taken the main update repo and the Non-Oss repos out.  I’ll need those.  Therefore, we’ll add the one repository left online to the list:

zypper ar --check --refresh --name 'openSUSE-42.1-Update-Oss' http://ftp5.gwdg.de/pub/opensuse/discontinued/update/leap/42.1/oss/openSUSE:Leap:42.1:Update.repo
zypper ar --check --refresh --name 'openSUSE-42.1-Update-Non-Oss' https://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/leap/42.1/repo/non-oss/suse/ opensuse-42.1-update

After adding those, I run one last zypper clean and zypper ref I’ve got no errors at this point, so I’m ready to upgrade!

Step 6

But wait!  What’s this!? The disk is almost full!  Ugh…OK.

After checking I find that it’s the openSUSE /.snaphosts folder.  However, we can’t just erase or edit this folder directly.  Instead, we’ll use the guide provided by Mohd Shakir Zakaria over at simplified.guide and clean them up.  Follow that link if you need to, clean up the snapshots and come on back.

Step 7

Now we’re ready to upgrade! Almost.

To ensure that the upgrade is done, get out of runlevel 5, use a normal command line (no GUI) and do the update.  That’s Runlevel 3 for you more advanced guys.

Once you’ve done that, create a screen or use tmux to create a terminal session to prevent your existing terminal from causing issues.  If you run it in a screen or with tmux and your terminal session crashes (strictly your terminal and not the system), then the upgrade will continue uninterupted.  However, if you choose to use the GUI and the GUI crashes, then so does your terminal and you’ll have a hard time recovering from it. You’ll probably need to just reinstall the OS. Might as well go straight to 15.3 if you do that.

So, I started my in a screen:

screen -S dist-upgrade

Then, ran:

zypper dup

I followed the prompts to resolve some minor issues with Gnome Notepad, an application I’ve never used, and then  let the upgrade start.

1,787 changes later, I’ve got my openSUSE 13.2 box running 42.1:

linux-53k6:~ # cat /etc/os-release 
NAME="openSUSE Leap"
VERSION="42.1"
VERSION_ID="42.1"
PRETTY_NAME="openSUSE Leap 42.1 (x86_64)"
ID=opensuse
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:opensuse:42.1"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://opensuse.org/"
ID_LIKE="suse"
linux-53k6:~ # 

At this time, if you want to remove the other repositories that we disabled before, you can.  Since they were numbers 1 and 5 for my system, I just removed them with:

zypper rr 1 5

Congratulations! You’ve got a openSUSE 42.1 box that you can now follow more normal update processed to get to 42.3, then up to 15.

Good luck!