Comment # 13 on bug 1186781 from
All that was necessary to get back what appears to be a completely normal
functioning system is a symbolic link in /lib64 to the dynamic linker in
/usr/lib64. Under a rescue system, relative to the mounted root of the broken
system (no chroot needed):

$ cd lib64
$ ln -s ../usr/lib64/ld-2.33.so ld-linux-x86-64.so.2

Note that /lib64/ld-linux-x86-64.so.2 is the missing target of the two links
/lib64/ld-lsb-x86-64.so.{2,3}, which showed up after the failed update. If I
had been running a root terminal when the accident happened, the following
might have fixed it without even booting into a rescue system:

$ cd /lib64
$ /usr/lib64/ld-2.33.so ln -s ../usr/lib64/ld-2.33.so ld-linux-x86-64.so.2

I tried executing 'su' and 'sudo' as arguments of /usr/lib64/ld-2.33.so on the
now functioning system and they still fail with the same errors as mentioned in
comment #10, so it doesn't seem to be meant to work this way, although there is
a report that says otherwise:
https://programmersought.com/article/20126230768/.

Here is a summary of what I have learned about this issue:

The installation of filesystem-15.5-40.2.x86_64 fails when making a copy of
/bin, possibly because of 'cp -ax -l' instead of 'cp -ax $CP_HARDLINK' in
/usr/libexec/convertfs from the package compat-usrmerge-tools. This means the
system has not been usrmerged.

After the failed installation of filesystem has been ignored, the subsequently
installed package glibc-2.33-6.13 breaks the system because of a missing
symbolic link to the dynamic linker, which has been moved from /lib64 to
/usr/lib64. Trying to run executable binaries now fails with the error message
"No such file or directory". It is possible to run them as arguments of
/usr/lib64/ld-2.33.so, though.

Any commentary and advise by openSUSE maintainers are welcome. I am interested
if I will be able to update my system without the risk of breaking it again, in
particular if the package filesystem will correctly usrmerge on the next
attempt.

(In reply to Usr Merge from comment #1)
> I have also observed that according to the YaST log messages the packet
> compat-usrmerge-tools should have been installed but it is shown not
> installed in the YaST software management.

After the fix, YaST now correctly shows the installed packages and their file
lists.

(In reply to Usr Merge from comment #10)
> Here is how I get a list of libraries used by ls:
>
> $ /usr/lib64/ld-linux-x86-64.so.2 /usr/bin/bash ~/bin/ldd /bin/ls

This could have be done simpler with:

$ /usr/lib64/ld-linux-x86-64.so.2 --list /bin/ls


You are receiving this mail because: