Updated from libstdc++43 to libstdc++46, now in troubles

Hi there,

Our recent SLES11SP1 system was proposing an automated migration to SP2. As it was the first time I was seeing the auto-update tools for registered systems, I thought why not…

When it was checking the system, the migration tool quickly complained about a conflict between version 4.3.4_20091019-0.7.35 of libstdc++ that was installed and version 4.6.2_20111026-1.1.4 that it was requiring (or wanting to install). It was proposing the option of removing old version or ignoring the conflict.

But, before to go ahead, I wanted to have a look with yast. When I saw that 4.3.4 was installed, I decided to remove it and install 4.6.2 with yast directly, thinking the migration tool would be happy…

Yast, installed 4.6.2, checked and updated dependencies, etc… success.

But then, I wanted to open a Gnome terminal, what silently failed, so I though it was wise to reboot the system…

When it came back, I only got a console login, no Gnome. Fortunately, the server is in run level 5 and most production services are running.

But well, there now are incompatibilities in this system and it must be fixed.

I could try to fix incompatibilities manually, one by one, but I’m fearing never to get the system back to a stable state, or to spoil the system in a way that auto-update tools would no more be able to maintain this system.

So my question to experienced people: what would be the best way to recover this system? Re-installing libstdc++43 manually (but I’m not sure how dependencies would be handled in that backwards direction), go ahead with the migration with the hope it will not fail at some point and it will fix everything (in that case how to do it from the command line).

Thanks in advance for your suggestions.

PS: I know, I should have made a backup :-/

4.3.4 was installed, I decided to remove it
If I understand you correctly, after installing the 4.6.2 package, you didn’t go on with the upgrade to SP2, but rebooted and saw the errors.

I think that shouldn’t be a big deal, simply reinstall the package and check how the system behaves. SP1 with 4.3.4 should work, and SP2 with 4.6.2 should work, and you’re on SP1 with 4.6.2

PS: I know, I should have made a backup :-/
btrfs and snapper will be a great tool in such cases in the future :slight_smile:


Thanks for your reply.

No, I didn’t go on with the upgrade to SP2… I was affraid to take the wrong decision, and I’m not sure how to do it from the command line. Using zypper, akaik…

But if as you suggest reinstalling 4.3.4 would work, then I should be able to do the migration with Yast Wagon.
My only hope is that stepping back to 4.3.4 wouldn’t break other packages that were updated at the same time as 4.6.2 (if any).

This time, I’ll follow “Chapter 7. Updating SUSE Linux Enterprise”:

I took a week off, I’ll keep this story aside for a couple of days and see next week…
Thanks again, Eric

Hi Eric, I just tried to reproduce this on x86-64 and failed: Installed SP1, updated just libstdc+±46 from SP2 - and everything still worked. Do you remember what you did differently?