[SOLVED] 32 bit program (xsane) looking for 64 bit library on multilib system
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
32 bit program (xsane) looking for 64 bit library on multilib system
Hello all,
On a Slackware64 14.1 system with multilib installed I removed the 64 bit version of xsane and installed the 32 bit version. It never-the-less looks for the 64 bit version of the libraries of gdk-pixbuf-2.0 and fails with
I hacked a solution by removing the 64 bit version of gdk-pixbuf2 and creating symlinks to the 32 bit version of the libraries. But I would still like to understand why the 32 bit version of xsane is looking for the 64 bit version of these libraries.
So I've learned that a lot of other programs rely on those libraries so my hacked solution is very problematic. Any help with a solution would be greatly appreciated.
It's probably looking for the library itself and can only find the 64bit version, which it then complains that it is not 32bit. Have you tried converting the 32bit version of that using Eric's script?
Code:
convertpkg-compat32 gdk-pixbuf2-2.28.2-i486-1.txz
You'd likely need to do this for any library that xsane depends on.
You had converted that program before you submitted the first post or after? If it was after, did it change your error? You should now have that file in /usr/lib and /usr/lib64, the first being a 32bit file and the latter, obviously, being a 64bit. If you show a different error, try finding what package that file comes from and then get the 32bit version, convert it to a -compat32, install it, and try again. But looking at the output from ldd, this might be a long process.
I had already converted and installed the compat32 package before the first post. I know it works because if I put a link in the /usr/lib64 directory pointing to the /usr/lib version xsane runs. It's just that not much else runs properly then.
(I've got a pure 64 bit system, so I can't replicate what you're going through.) It appears that the shared library will attempt to locate the loaders via running gdk-pixbuf-query-loaders. (Yeah, I could look at the code but I'm too lazy to do so.)
Do you see 64 bit paths in (I'm guessing) /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache?
Your best bet may be to write your own script to call xsane that sets GDK_PIXBUF_MODULEDIR to /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders prior to running /usr/bin/xsane. I don't even know if that would work; it could cause the loader.cache file in the 32 bit directory to be overwritten with the 64 bit information.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.