June 24, 2008

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.

Method

  1. Upgrade RPM to the version in 11.0
  2. Install the full package management stack from 11.0
  3. Upgrade all packages.

Stages

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.
    rm /var/cache/zypp/zypp.db        
  • 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.

On 64bit:

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    
  • Reboot

Problems

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.


- 42 comments by 1 or more people Not publicly viewable

[Skip to the latest comment]
  1. Andy Wafaa

    Slightly different to my approach, and more straight forward :)

    23 Jun 2008, 22:58

  2. Felix Möller

    You have a typo in:
    “Add the main openSUSE 11.0 repository.
    zypper ar http://download.opensuse.org/distribution/11.0/repo openSUSE110”
    the oss is missing in the url.

    Otherwise it worked fine, I just updated my rented strato server.

    During updating hal I had a defunct hal which I had to kill.

    24 Jun 2008, 09:22

  3. Thanks, fixed.

    24 Jun 2008, 13:50

  4. Caladan

    Pardon my ignorance, but if you dont have a 64bit install of 10.3 I asume

    rpm -Uhv ‘http://download.opensuse.org/distribution/11.0/repo/oss/suse/x86_64/rpm-4.4.2-199.1.x86_64.rpm’

    should be

    rpm -Uhv ‘http://download.opensuse.org/distribution/11.0/repo/oss/suse/i586/rpm-4.4.2-199.1.i586.rpm’

    as I dont see it in the i686 list

    24 Jun 2008, 18:17

  5. Yes thanks, updated.

    24 Jun 2008, 18:44

  6. Robin

    nice guide.

    just a question: can’t rpm be updated by just calling “zypper in rpm”?

    24 Jun 2008, 20:18

  7. I don’t think that will work, as zypper will try to install other packages first. I didn’t actually try it this time though, I have in the past.

    24 Jun 2008, 20:36

  8. skx

    Great entry, let me update my openSUSE installed on ecrypted partitions. Everything worked for me, there’s just one minor problem: when I go to yast -> software -> software repositories then try do add new community repository the list of community repositories downloaded by yast is for openSUSE 10.3.

    24 Jun 2008, 21:01

  9. Try this

    sed -ie 's/openSUSE_103_Servers/openSUSE_110_Servers/' /etc/YaST2/control.xml

    24 Jun 2008, 21:12

  10. skx

    Worked like a charm, thank you very much.

    I have suse installed on encrypted partitions and had to recreate swap for some reason, but I’m not sure if it’s related to the update method.

    25 Jun 2008, 14:56

  11. Lars Müller

    It might be more save to use the rpm including lzma support provided by http://download.opensuse.org/repositories/home:/coolo/openSUSE_10.3/ first.

    Then I update very base packages (glibc, rpm, bash, coreutils, popt, libbz2, zlib, sed, swk, sysconfig) with the help of plain rpm on the command line. Rpm complains if a package or particular version of a package is missing. Since the days of SUSE Linux 10.1 the rpm dependencies are in such a well state to produce a clean result.

    Next I ensure a rebuild of the rpm data base by calling rpm—rebuilddb

    Then update the zypper stack or the meta package management tool (yum, smart) you prefer and got ahead to update the remaining system.

    Drawback: Package renames are only handled by the zypper approach.

    Even the YaST update module might be utilized to update after the YaST stack is on the level of the new openSUSE version. I’ve not tried this way. Therefore I’m not sure if it works and which YaST module – YaST – has to be called.

    27 Jun 2008, 09:04

  12. Amol Shandilya

    how can i upgrade suse 10.3 to suse 11.0 manually.. like from any package or with any rpm…????

    27 Jun 2008, 09:44

  13. Felipe Alvarez

    @Amol
    What do you mean manually? This blog is about how to upgrade from 10.3 to 11 manually! Isn’t that what you want? If you want an easy way, you can also download the openSUSE 11 DVD, and select “upgrade” instead of “new installation”

    29 Jun 2008, 06:11

  14. 16b1ts

    Thank you for the guide, it was real straight forward and no errors.. I now have an 11.0 box from 10.03, i just hate wasting DVDs on distros since they are updated so quickly, but thank you, you save me time, and some disks…

    30 Jun 2008, 05:42

  15. ss

    Thanks for the guide. It worked great. I had screwed up my package management earlier in 10.3 by switching from one repository to another and back. So I thought the live upgrade will fail because of version conflicts and will have to install 11.0 from scratch. But did not have any signification problem (had 3 dependency issues with kaffeine & VLC – but zypper offered options that worked).

    30 Jun 2008, 22:28

  16. Lucca

    does it works if i have a 32bit opensuse10.3 and a 64bit machine, and if I want to upgrade to a 11.0 with a 64bit…??

    I’m sorry if its understandable, i’m pretty bad at english xDDD

    tks in advance

    01 Jul 2008, 19:42

  17. LasseKongo

    Thanks, worked like a charm when I upgraded my Xen paravirtualized 10.3 guest to 11.0. No problems so far in the new installation.

    01 Jul 2008, 21:34

  18. alwayslurking

    You probably want to add an update repo after that, or you’ll spend a day wondering why Firefox is so flaky, amongst other things;

    1. zypper sa http://download.opensuse.org/update/11.0/ openSUSE110_updates
      Adding repository ‘openSUSE110_updates’ [done]
      Repository ‘openSUSE110_updates’ successfully added
      Enabled: Yes
      Autorefresh: No
      URI: http://download.opensuse.org/update/11.0/
    2. zypper sm -r !$
      zypper sm -r openSUSE110_updates
      Autorefresh has been enabled for repository ‘openSUSE110_updates’.
    3. zypper sl
    4. | Alias | Name | Enabled | Refresh
      -----------------------------
      1 | openSUSE110_NonFree | openSUSE110_NonFree | Yes | Yes
      2 | packman | packman | Yes | Yes
      3 | openSUSE110_updates | openSUSE110_updates | Yes | Yes
      4 | openSUSE110 | openSUSE110 | Yes | Yes

    03 Jul 2008, 15:25

  19. Dan

    Thank you very much! This upgrade method worked great!

    Only question is I used to have approx 4.5 gig free on my root partition, and now only have around 1.5gig free.

    I looked at the size of my log files, etc, but nothing looked out of the ordinary.

    It appears that either all of the downloaded packages are still residing on the drive, or all of the 10.3 stuff has been renamed.

    Any thoughts? I’d like to free up as much space as I can.

    Thanks

    12 Jul 2008, 21:02

  20. not working

    Followed steps but it does not work:

    ~ # zypper in zypper
    zypper: relocation error: zypper: symbol _ZNSt3tr18__detail12__prime_listE, version GLIBCXX_3.4.10 not defined in file libstdc++.so.6 with link time reference

    14 Jul 2008, 22:04

  21. @Dan – cached packages are located in /var/cache/zypp/packages/ , you can toggle package caching by modifying the keeppackages variable in the files in /etc/zypp/repos.d/

    22 Jul 2008, 19:59

  22. Annoyed@openSuse

    This is one of the reasons why openSuse is slipping into obscurity. This is a poor quality upgrade mechanism that is also risky. In fact, it is too risky to trust for remote upgrades.

    Meanwhile other distros got their act together and allow an easy and reliable upgrade mechanism. Observe the necessary commands for each distro below:

    Debian/Ubuntu# apt-get dist-upgrade; reboot

    Red Hat/Fedora/CentOS# yum upgrade; yum update; reboot

    zypper is a steaming pile but apt-get and yum are both NIH so the Novell and openSuse developers regard them as inferior. It’s all open source! Wouldn’t the logical thing be to copy the good bits and incorporate this basic and essential functionality that you are still missing after all these years?

    30 Jul 2008, 15:10

  23. @Annoyed normally you could just do “zypper dup; reboot”, this is only a special case because of a major change to RPM. Debian have a policy not to do such a major change in just one release. They would introduce the support for lzma in one release, and then switch the payloads the next release, which would not break upgrades. The problem is not with the tools but with policy.

    And zypper in 11.0 is much faster than yum and even faster than apt.

    30 Jul 2008, 15:16

  24. Annoyed@openSuse

    @Benjamin Weber – My beef is with openSuse not you so please, don’t take this as a personal attack. But your statement doesn’t hold true with the real world.

    zypper dup does not work when trying to go from 10.2 to 10.3 and zypper dup does not work properly when going from 10.3 to 11.0

    The year is 2008 why are we even discussing upgrade deficiencies when other distros had them solved years ago? By this time openSuse should have two or more upgrade options:
    1. You should be able to pop the DVD into a running system and it should start the upgrade utility and ask you how you want to proceed with sane defaults for those that do not have a clue. But, it doesn’t.

    2. Over the wire upgrades should be bulletproof and simple with a single command to do the job and a popup notification for graphical environments. These features are also glaringly absent. It takes bodges derived from blogs, much appreciated by the way, to do it but, it’s just not quite reliable and therefore unusable for remote upgrades of production systems.

    30 Jul 2008, 23:07

  25. Bruce

    Didn’t worked for me

    06 Aug 2008, 03:07

  26. MarcusIronfist

    I just ran the process as outlined above (with some minor “tweaks” caused by occassional network loss – resolved by simply rerunning the commands), and it WORKED!

    My x86_64 10.3 is now a working 11.0 without the hassle of downloading and burning one of the DVD images.

    Thank you Benjamin.

    07 Aug 2008, 02:34

  27. Satish

    Thanks, it was impeccable

    13 Aug 2008, 22:49

  28. Joe P.

    Thanks, Bruce. I wonder if a similar procedure could be worked to do the in-place upgrade from the DVD without booting it? It seems the main step would be to add the DVD as a repository instead of the on-line one, right? Anything else?

    16 Aug 2008, 20:39

  29. J.M. Stoorvogel

    I am not really into package management, but I already downloaded the ISO file. But it complained about update problems/conflicts [150 piece] and nomatter what I did, they kept coming back. Zypper also complained but a lot less.

    I believe it is also possible to add the ISO as an repository? It was possible with Yast, don’t know with Zypper… This would save redownloading… I have several more computers that need an upgrade ;-)

    Could you provide those additional commands? I am sure that more people with a saturated system [installed almos anything ;-)] have the same problems…

    But thanks again, you saved the day. I also don’t know why suse didn’t provide this way of upgrading…

    16 Aug 2008, 22:45

  30. J.M. Stoorvogel

    argh never mind, lazy me…

    Tired of keeping your DVD’s around? Want to create ISO images and add them as installation sources?
    These commands have been tested on openSUSE 11.
    First create a directory where you will store your ISO files.
    mkdir /home/sources
    Now create your ISO
    mkisofs -iso-level 4 -J -R -o /home/sources/su1100.001.iso /media/SU1100.001/
    Now we add the ISO as a software repository
    zypper ar -c -t yast2 “iso:/?iso=/home/ricardo/sources/su1100.001.iso” “openSuSE 11”
    Verify that the service has been successfully added
    zypper repos
    Now we can delete the DVD repository as an installation repository
    zypper rr 1
    Let’s quickly enable automatic refresh (optional)
    zypper mr -r “openSuSE 11”
    Now we can finally test the ISO repository and install a package like nmap
    zypper in -y nmap

    16 Aug 2008, 22:50

  31. Caleb Cushing (xenoterracide)

    I’ve tried this but it seems to screw up my Xorg settings. They are supposed to be 1600×1200@85hz the settings in pax all look right, but if I look at krandrtray I end up at 79hz and my monitor like doing the wave in one corner. the screen also ends up much smaller… it’s fine before I try the upgrade. I can’t find any way of fix X once I’ve done it.

    I’m going to try a network install probably sunday. The regular install (of 11.0) doesn’t work and locks my system during the cd boot. I’ve tried all failsafe modes and vesa and text modes and without fail it locks up. I’ve run linux on this box for 4 years (mostly gentoo) so I’m sure it isn’t a hardware compatibility issue. And I’m 99% sure my install media is good since it’s worked previously.

    23 Aug 2008, 04:20

  32. Frank

    Thank you very much! This upgrade method worked without any problems!

    25 Aug 2008, 17:29

  33. Guillaume

    Benjamin,

    Thanks for a great tutorial. Upgrade worked without a breeze, though I had the following problem afterwards: networkmanager would only work with wired connection and not anymore with wireless (though the combination “traditional method with ifup” + wicd worked fine). The only error message I saw on /var/log/messages was

    ipw2200: Failed to send SYSTEM_CONFIG: Already sending a command.

    I struggled for a few hours to solve this (and I did, finally), so I think the solution is worth mentioning. For some personal reasons, I had disabled ipv6 support in 10.3, and my understanding is that it is on by default on 11.0. However, there must have been some inconsistencies on the way which prevented networkmanger from working properly. The solution was exceedingly simple: yast2 network, check “enable ipv6”, reboot, and voila! (note: after reboot, I actually disabled it again, rebooted, and it still works).

    17 Sep 2008, 15:37

  34. Alex

    hey good job bro! this is a great guide, worked flawless!
    it would be nice to make a 1click install of this and added to the opensuse.org site
    if you are not working on one, let me know so i can make one

    good job

    Alex

    22 Sep 2008, 16:19

  35. fandar

    Hi, i just tryed this and i have some problem with rpm, the rpm version is now 4.4.2 but it stops every time when i am trying to install some package or update with zypper rpm freeze, shows nothing and didnt install the package, what can be wrong there? Thank You

    08 Oct 2008, 17:20

  36. Smart

    Great! My fress install of openSUSE 11.0 couldn’t locate the repo, this solved it!

    23 Oct 2008, 08:22

  37. Hendrik Maryns

    Would this work to upgrade from 10.0 to 11.0 also, or will I need to go through all intermediate distributions? Otherwise I’d simply do a backup and new installation, but then configuring hell begins, I’m afraid (this is for a webserver).

    But thanks, it worked on another laptop impeccably!

    06 Nov 2008, 10:13

  38. Erik Jakobsen

    Will this method work for 11 => 11.1 ?

    24 Nov 2008, 03:11

  39. maybe windows

    didn’t work for me. In fact killed the system. Have to download 11.0 and burn to dvd to fix it.

    09 Dec 2008, 03:36

  40. Vany

    You are the man!!!
    Great work and good documentation!
    It worked without any problem for me.

    Thanks a lot for sharing.

    18 Dec 2008, 13:12

  41. skx

    With some minor changes this will also work for updating from 11.0 to 11.1.

    19 Dec 2008, 02:26

  42. David

    Hey skx,

    how do you do that ? I run into the fu….. problem, that curl terminate with unspec. errors.

    Regards
    David

    19 Dec 2008, 23:12


Add a comment

You are not allowed to comment on this entry as it has restricted commenting permissions.

Trackbacks

June 2008

Mo Tu We Th Fr Sa Su
May |  Today  |
                  1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30                  

Search this blog

Tags

Galleries

Most recent comments

  • Hey skx, how do you do that ? I run into the fu….. problem, that curl terminate with unspec. errors.… by David on this entry
  • With some minor changes this will also work for updating from 11.0 to 11.1. by skx on this entry
  • You are the man!!! Great work and good documentation! It worked without any problem for me. Thanks a… by Vany on this entry
  • didn't work for me. In fact killed the system. Have to download 11.0 and burn to dvd to fix it. by maybe windows on this entry
  • Will this method work for 11 => 11.1 ? by Erik Jakobsen on this entry

Blog archive

Loading…
Not signed in
Sign in

Powered by BlogBuilder
© MMXIV