On 2011-06-30 18:36 +0200, Jonathan Nieder wrote: > Sven Joachim wrote: > >> On multiarch-enabled i386 systems, installing libc6:amd64 together with >> lib64foo:i386 has some interesting effects. > [...] >> # apt-get install libc6:amd64 >> # apt-get install lib64ncurses5 >> # bash >> >> You get an error message: "bash: error while loading shared libraries: >> libncurses.so.5: wrong ELF class: ELFCLASS64". > > Weird and scary. Any idea why this happens?
I can even explain exactly why. :-) Because I had no /lib64 directory before, installing libc6:amd64 created the /lib64 -> /lib symlink, and then installing lib64ncurses5 created /lib64/libncurses.so.5, overwriting the existing /lib/libncurses.so.5 from libncurses5 through the symlink. This is a file conflict that dpkg does not notice. >> The effects of installing libc6:amd64 _after_ lib64ncurses5 will also be >> interesting, since /lib64 does not get converted to a symlink in that >> case, AFAICS. > > I hope installing libc6:amd64 before does not change /lib64 into a > symlink, either (maybe that is what is happening here). If /lib64 already exists, it will not be converted. This means that removing libc6-amd64 will instantly break all 64-bit programs, because /lib64/ld-linux-x86-64.so.2 is gone and you are left with /lib/ld-linux-x86-64.so.2 which is in the wrong directory. :-/ Cheers, Sven -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org