I recently upgraded to an amd64 version of Wheezy, and I have a couple of compiled proprietary programs that need to keep running 32-bit.

No problem, I installed the i386 compatibility libraries

dpkg --add-architecture i386
apt-get update
apt-get install ia32-libs

Unfortunately, the version of one of the libraries installed is wrong, generating an error:

error while loading shared libraries: libdb-4.6.so: cannot open shared object file: No such file or directory

It looks like I've got:

-rw-r--r-- 1 root 1641048 Jun 28  2012 i386-linux-gnu/libdb-5.1.so

Where my program expects:

-rw-r--r-- 1 root 1638052 Sep 13  2008 libdb-4.6.a
-rw-r--r-- 1 root     800 Sep 13  2008 libdb-4.6.la
-rw-r--r-- 1 root 1256548 Sep 13  2008 libdb-4.6.so

What's the best way to backtrack the libraries to resolve this error?

  • Have you tried just symlinking a 4.6 to the 5.1 libs?
    – jscott
    Apr 24, 2014 at 1:07
  • Interesting thought, but no go. After that link: /usr/lib/i386-linux-gnu/libdb-4.6.so: version `DB4_6' not found
    – Shannon A.
    Apr 24, 2014 at 4:34

1 Answer 1


I just copied my libdb-4.6.so file off of my old i386 machine into /usr/lib/i386-linux-gnu and it seems to work fine.

Anyone want to tell me why this is a horrible idea? If not, this may be the answer ...

  • 1
    Considering the scope of use this library will have, I believe this is the correct answer.
    – jscott
    Apr 26, 2014 at 2:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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