[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: /lib32 -> emul/ia32-linux/lib ?



Philipp Matthias Hahn <pmhahn@debian.org> writes:

> Hello,
>
> I'm running "Debian sid" on "x86_64" and tried to build a "google-earth"
> package today, which failed with
> 	dpkg-shlibdeps: error: no dependency information found for /emul/ia32-linux/lib/libm.so.6 (used by ../usr/lib/googleearth/liblayer.so).
>
> After some investigation into bi-arch and multi-arch I discovered that I
> have the following directory structure:
> 	/emul/ia32-linux/lib
> 	/emul/ia32-linux/usr/lib
> 	/lib
> 	/lib32 -> emul/ia32-linux/lib
> 	/lib64 -> lib
> 	/usr/lib
> 	/usr/lib32
> 	/usr/lib64 -> lib
>
> Looking at "/var/lib/dpkg/info/libc6-i386.preinst" I found the following
> fishy line:
> 	if [ "$(readlink /lib32)" = "/emul/ia32-linux/lib" ]; then
> 				     ^ notice that my symlink does not
> 				     have the leading slash!
> 		rm /lib32
>
> Since I don't remeber ever creating that symlink myself and also found
> no definite answer to my question on how a "right" directory layout
> should look like, I'd like to ask first before filing a possible bug on
> "libc6-i386" because of that to restrictive test.
>
> Sincerely
> Philipp Hahn

The expected layout in squeeze/sid is (at least it is here)

/lib
/lib32
/lib64 -> /lib
/usr/lib
/usr/lib32
/usr/lib64 -> lib

I don't understand why your links are different but libc6-i386 should
really cope with that. So go ahead and file a bug.

As for fixing it you need to remove the link and reinstall every
package that has files in /lib32. Then check if any package has files
left in /emul/ia32-linux/ and update/remove them before removing what
remains of /emul/ia32-linux/.

MfG
        Goswin


Reply to: