Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I am trying to figure out why Eclipse is complaining about being unable to find a library. I've managed to reproduce/reduce the java problem to:

$ ldd /home/jhendrix/.swt/lib/linux/x86/libswt-pi-gtk-3833.so
        linux-gate.so.1 =>  (0xf76fa000)
        libgtk-x11-2.0.so.0 => not found
        libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xf7674000)
        libXtst.so.6 => not found
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74c9000)
        libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf73cd000)
        /lib/ld-linux.so.2 (0xf76fb000)
        libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf738d000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7372000)
        librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf7368000)

And indeed java is complaining about being unable to locate libgtk-x11-2.0.so.0. But when I check ldconfig, the library is right there:

$ sudo ldconfig -v 2>&1 | grep -E '(libgtk-x11-2.0.so.0|libXtst.so.6)'
        libXtst.so.6 -> libXtst.so.6.1.0
        libgtk-x11-2.0.so.0 -> libgtk-x11-2.0.so.0.2400.13

I suspect it has something to do with running a 64 bit system, running a 32-bit customized Eclipse build (Texas Instruments Code Composer 5):

$ locate libgtk-x11-2.0.so.0 libXtst.so.6
/usr/lib/x86_64-linux-gnu/libXtst.so.6
/usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13

I think the question is: How can I install the 32 bit version for this library on a 64 bit Ubuntu 12.10? And secondary: Is it likely this will solve the problem?

share|improve this question
    
See: help.ubuntu.com/community/MultiArch –  jordanm Jan 18 '13 at 22:24
    
@jordanm your hint put me on the right track, thnx! I executed $ sudo apt-get install libgtk2.0-0:i386 libxtst6:i386 and Eclipse now successfully runs. You should consider writing an answer. –  jippie Jan 18 '13 at 22:34
    
Added as an answer. –  jordanm Jan 18 '13 at 22:38
add comment

1 Answer 1

up vote 4 down vote accepted

Modern versions of 64bit Ubuntu have dpkg multi-arch enabled by default. You can install 32bit packages by adding :i386 to the end of the package name. You can find more information on multi-arch in Ubuntu here.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.