How To Upgrade From openSUSE 12.3 To openSUSE 13.1

openSUSE 13.1 has been released two days before. Read the openSUSE 13.1 release notes here. If you already have installed openSUSE 12.3 version on your system and want to upgrade to the new 13.1 release? You’re on the right track. Here i will describe how to upgrade to openSUSE 13.1 from openSUSE 12.3 or older.

Preliminary notes

Please backup all important data prior to beginning the upgrade process. Be mindful that if your upgrade process is stopped unfortunately due to power failure or internet failure, you will be resulted with a unstable or broken system. So make sure that have an uninterrupted power supply and stable internet connection. Avoid upgrading from a poor internet connection to save time and effort. If you consider to upgrade multiple systems, then it would be better to download an ISO image and install them one by one.


To find the current running openSUSE version, enter the following command:

cat /etc/SuSE-release

Sample output:

openSUSE 12.3 (i586)
VERSION = 12.3
CODENAME = Dartmouth

Well, let us begin to upgrade from openSUSE 12.3 to 13.1. Disable all OBS repositories or any third party repositories first, perform the upgrade, then re-enable them.

First let us check whether the update repository exists and enabled. To do that enter the following command in Terminal:

zypper repos --uri

Sample Output:

sk@sk: ~_001If not enabled, enable it using command:

zypper modifyrepo --enable repo-update

If update repository doesn’t exist, you can add it using the following command:

zypper addrepo --check --refresh --name 'openSUSE-12.3-Update' repo-update

Now update your current version to latest packages using commands:

zypper refresh
zypper update

It will take a while depending upon your Internet connection speed. Please be patient.

sk@sk: ~_002After updating the system, reboot it to apply the new changes.


As i mentioned already, disable any third party or OBS repositories before proceed to upgrade.

To list the current available repositories, enter the following command.

zypper lr

Sample output:

# | Alias                     | Name                               | Enabled | Refresh
1 | openSUSE-12.3-1.7         | openSUSE-12.3-1.7                  | Yes     | No     
2 | repo-debug                | openSUSE-12.3-Debug                | No      | Yes    
3 | repo-debug-update         | openSUSE-12.3-Update-Debug         | No      | Yes    
4 | repo-debug-update-non-oss | openSUSE-12.3-Update-Debug-Non-Oss | No      | Yes    
5 | repo-non-oss              | openSUSE-12.3-Non-Oss              | Yes     | Yes    
6 | repo-oss                  | openSUSE-12.3-Oss                  | Yes     | Yes    
7 | repo-source               | openSUSE-12.3-Source               | No      | Yes    
8 | repo-update               | openSUSE-12.3-Update               | Yes     | Yes    
9 | repo-update-non-oss       | openSUSE-12.3-Update-Non-Oss       | Yes     | Yes

If you have any third party repository, then remove it using command:

zypper rr <alias>

You might want to backup your current repositories. To do that enter the following command to backup all your current repositories.

cp -Rv /etc/zypp/repos.d /etc/zypp/repos.d.bak

Sample output:

‘/etc/zypp/repos.d/’ -> ‘/etc/zypp/repos.bak/repos.d’
‘/etc/zypp/repos.d/repo-update.repo’ -> ‘/etc/zypp/repos.bak/repos.d/repo-update.repo’
‘/etc/zypp/repos.d/repo-debug-update-non-oss.repo’ -> ‘/etc/zypp/repos.bak/repos.d/repo-debug-update-non-oss.repo’
‘/etc/zypp/repos.d/repo-source.repo’ -> ‘/etc/zypp/repos.bak/repos.d/repo-source.repo’
‘/etc/zypp/repos.d/repo-oss.repo’ -> ‘/etc/zypp/repos.bak/repos.d/repo-oss.repo’
‘/etc/zypp/repos.d/repo-update-non-oss.repo’ -> ‘/etc/zypp/repos.bak/repos.d/repo-update-non-oss.repo’
‘/etc/zypp/repos.d/repo-non-oss.repo’ -> ‘/etc/zypp/repos.bak/repos.d/repo-non-oss.repo’
‘/etc/zypp/repos.d/openSUSE-12.3-1.7.repo’ -> ‘/etc/zypp/repos.bak/repos.d/openSUSE-12.3-1.7.repo’
‘/etc/zypp/repos.d/repo-debug-update.repo’ -> ‘/etc/zypp/repos.bak/repos.d/repo-debug-update.repo’
‘/etc/zypp/repos.d/repo-debug.repo’ -> ‘/etc/zypp/repos.bak/repos.d/repo-debug.repo’

Then change all repositories to new version. Here i am going to upgrade openSUSE 12.3 to 13.1, so the command will be:

sed -i 's/12\.3/13\.1/g' /etc/zypp/repos.d/*

Now check if all repositories changed to new version.

zypper lr

Sample output:

# | Alias                     | Name                               | Enabled | Refresh
1 | openSUSE-13.1-1.7         | openSUSE-13.1-1.7                  | Yes     | No     
2 | repo-debug                | openSUSE-13.1-Debug                | No      | Yes    
3 | repo-debug-update         | openSUSE-13.1-Update-Debug         | No      | Yes    
4 | repo-debug-update-non-oss | openSUSE-13.1-Update-Debug-Non-Oss | No      | Yes    
5 | repo-non-oss              | openSUSE-13.1-Non-Oss              | Yes     | Yes    
6 | repo-oss                  | openSUSE-13.1-Oss                  | Yes     | Yes    
7 | repo-source               | openSUSE-13.1-Source               | No      | Yes    
8 | repo-update               | openSUSE-13.1-Update               | Yes     | Yes    
9 | repo-update-non-oss       | openSUSE-13.1-Update-Non-Oss       | Yes     | Yes

As you see in the above output, all repositories has been changed to 13.1 version.

Note: If you are attempting to upgrade from 12.1 or older version, add the non-oss-update repository using the following command.

zypper ar -f repo-update-non-oss

Now update the repository list with following command:

zypper ref

It is strongly recommended that you should run this upgrade inside tmux to protect the upgrade process in case anything should go wrong with the X session during the upgrade. tmux package is available in the main openSUSE repositories.

Install it using command:

zypper in tmux

Finally, it is time to upgrade. Enter the following command in Terminal to switch to tmux.


Enter the following command in terminal to start upgrading to 13.1.

zypper dup

sk@sk: ~_005

sk@sk: ~_006

sk@sk: ~_007After upgrade, reboot your system to run with new openSUSE 13.1 version.

As i mentioned above, to find the current version of openSUSE, run the following command:

Note: /etc/SuSE-release command is deprecated in openSUSE 13.1, so use /etc/os-release instead.

cat /etc/os-release

Sample output:

VERSION="13.1 (Bottle)"
PRETTY_NAME="openSUSE 13.1 (Bottle) (i586)"

Please be mindful that if upgrade process may terminate due to power or internet failure, then you’ll be end up with broken system. So be prepared and act accordingly.

Good Luck!