Upgrading openSUSE 10.3 –> 11.0 in a running system.
Upgrading openSUSE between releases while the system is running is not a currently supported method of upgrading. The supported method is to boot from an install medium and select the upgrade option. Nevertheless, it is possible to upgrade a running system. This is more difficult than normal with openSUSE 10.3 -> openSUSE 11.0 due to the change in RPM payload format from bz2 -> lzma which makes the RPM in 10.3 unable to install RPMs from 11.0.
- Upgrade RPM to the version in 11.0
- Install the full package management stack from 11.0
- Upgrade all packages.
The specific steps required to upgrade using the above method may vary from system to system, these are just those that I needed.
- Disable all the repositories I was using on 10.3.
mv /etc/zypp/repos.d /etc/zypp/repos.d.old
- Delete the repository cache.
- Add the main openSUSE 11.0 repository.
zypper ar http://download.opensuse.org/distribution/11.0/repo/oss openSUSE110
- Install the new RPM from openSUSE 11.0.
rpm -Uhv 'http://download.opensuse.org/distribution/11.0/repo/oss/suse/x86_64/rpm-4.4.2-199.1.x86_64.rpm'
Or if you are on 32 bit:
rpm -Uhv 'http://download.opensuse.org/distribution/11.0/repo/oss/suse/i586/rpm-4.4.2-199.1.i586.rpm'
- Install the 11.0 package management stack.
zypper in zypper
- Add the 11.0 version of the nonoss and packman repositories, as I have several packages installed from these.
zypper ar http://download.opensuse.org/distribution/11.0/repo/non-oss openSUSE110_NonFree zypper ar http://packman.iu-bremen.de/suse/11.0/ packman
- Upgrade all packages. At this point I had to confirm several package vendor changes and removal of a few obsolete packages.
zypper ref zypper dup
I had only two significant problems after upgrading. Both turned out to be down to my having edited configuration files, so they were not automatically overwritten with the updated configuration files.
- Networkmanager would immediately disconnect after connecting. This turned out to be down to a stale dhclient configuration file. I solved this with:
mv ./dhclient.conf.rpmnew ./dhclient.conf
- openSUSE updater could not find any backends. This turned out to be down to a stale zypp configuration file. I solved this with:
mv /etc/zypp/zypp.conf.rpmnew /etc/zypp/zypp.conf
Since lack of a new configuration files can cause breakage in unexpected places it would be nice to offer users the chance of replacing or merging their configuration file changes, rather than requiring users to know about these files and merge them manually.