libgvfsdbus missing in ia32-libs package

Asked by Mike Williamson

Running UBUNTU 10.04 LTS.

I am trying to run an application requiring 32-bit capability. I installed ai32-libs package.

The error I get is:
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so

When I try to locate the 32-bit version:

mikew@mitydsp:~$ locate libgvfsdbus
/usr/lib/gio/modules/libgvfsdbus.so

All other lib32 libraries seem to be installed. Is there another package that contains this library?

Question information

Language:
English Edit question
Status:
Answered
For:
Ubuntu ia32-libs Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
mycae (mycae) said :
#1

you can search for files using the apt-file command

sudo aptitude install apt-file

sudo apt-file update

apt-file find /usr/lib/gio/modules/libgvfsdbus.so

If you are running an application that needs 32 bit compatibility, then you need to build every library it depends upon as 32 bit. The package manager does not do this for you, and usually only supplies you with the base libs needed.

From a pragmatic perspective, you would be better off installing a 32 bit vm under your 64 bit system, or rebuilding the 32 bit app in 64 bit, and fixing any programming errors that are causing build failures under amd64.

Revision history for this message
actionparsnip (andrew-woodhead666) said :
#2

Then you need to download the 32bit deb file for libgvfsdbus.so and extract it, then put the file in /usr/lib32

It will then be ok. You will need to manually satisfy 32bit libs in this manner until it runs. ia32-libs doesn't install ALL 32bit libs so it is not missing, you just need to do some legwork to make it work

Revision history for this message
Mike Williamson (mike-a-williamson) said :
#3

Actually, The file was part of the ia32-libs package. However, the /usr/lib32/libgio-2.0.so file is calling out /usr/lib/gio/modules instead of /usr/lib32/gio/modules, and it fails because libgio is searching the wrong folder (the 64 bit /usr/lib/gio/modules instead of the 32 bit /usr/lib32/gio/modules). You can see the path is hardcoded by running "strings" on it. It appears to be touched on in this bug, here:

https://bugs.launchpad.net/ubuntu/+source/gdk-pixbuf/+bug/190227

It wasn't clear to me if this bug was going to be addressed or not, or if it's the same issue I'm having, or what the work-around is.

I did see another post about doing a dchroot and setting up a 32 bit linux install, but that seemed like a lot of work.

The application source code is not available, so I don't have the option of rebuilding for 64 bit native support. Sounds like I need to build yet another linux box or dual boot this one to support 32 bit applications. VM's are a bit slow (the app I am trying to install is a cross compiler IDE and debugger). It's unfortunate that running 32 bit apps from a 64 bit kernel / install isn't straightforward on linux.

Thanks for your help.

Revision history for this message
williamts99 (williamts99) said :
#4

Unless you truly need 64bit, you can just install the 32bit version of Ubuntu.

Revision history for this message
Jeff Caldwell (jeffrey-d-caldwell) said :
#5

Thanks, Mike. I did:

ln -s /usr/lib32 /usr/l32

and I copied the base file for /usr/lib32/libgio-2.0.so to a safe place.

In Emacs I did

hex-find-file => /usr/lib32/libgio-2.0.so

and searched for the string /usr/lib (that string occurs only once). I changed /usr/lib to /usr/l32 and saved the file.

It works nicely.

Can you help with this problem?

Provide an answer of your own, or ask Mike Williamson for more information if necessary.

To post a message you must log in.