61

How to fix this error:

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found

Platform:

Linux alef 3.2.0-4-amd64 #1 SMP Debian 3.2.35-2 x86_64 GNU/Linux

3 Answers 3

64

That means the program was compiled against glibc version 2.14, and it requires that version to run, but your system has an older version installed. You'll need to either recompile the program against the version of glibc that's on your system, or install a newer version of glibc (the "libc6" package in Debian).

Debian has glibc 2.16 in the "experimental" repository, but recompiling the program is the safer option. Glibc is the library that everything depends on, so upgrading it can have far-reaching implications. Although there's probably nothing wrong with Debian's glibc 2.16 package, the fact that it's in the experimental repository means it hasn't received as much testing.

3
  • 8
    This is such a cool answer and I understood each sentence :). How to recompile it (the app is tidesdk developer) under my machine, any references? However i'm gonna accept this answer, nice.
    – xliiv
    Jan 17, 2013 at 15:05
  • upgrading to debian jessie helped here.
    – cweiske
    Jun 21, 2013 at 9:09
  • 10
    Does this mean you need exactly version 2.14 of glibc or at least version 2.14?
    – Philippe
    Oct 1, 2013 at 14:11
28

I have posted my solution here, repost it for reference.

In my situation, the error appears when I try to run an application (compiled on Ubuntu 12.04 LTS) using GLIBC_2.14 on Debian Wheezy (which installs glibc 2.13 by default).

I use a tricky way to run it, and get correct result:

  1. Download libc6 and libc6-dev from Ubuntu 12.04 LTS

  2. Run dpkg command to install them into a directory (/home/user/fakeroot/ for example):

    $ dpkg -x libc6-dev_2.15-0ubuntu10.6_amd64.deb /home/user/fakeroot/
    $ dpkg -x libc6_2.15-0ubuntu10.6_amd64.deb /home/user/fakeroot/
    
  3. Run your command with specified LD_LIBRARY_PATH:

    $ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND
    
  4. My application only uses memcpy() from GLIBC_2.14, and it works.

I don't know whether it will work successfully for other applications. Wish it helpful.

0
0

If you can't use dpkg because of the libc error, try /bin/busybox sh . Busybox is statically linked, so works with a broken libc6.

Then you can use wget to get the libc6 deb from https://packages.ubuntu.com , ar x libc6*.deb, unxz data.tar.xz and (be careful!) tar vxf data.tar -C / to get things going again.

(Hilarious context: I wrote a python3 script to downgrade packages to the distro version in order to get a partly do-release-update upgraded system back to the pre-upgrade state-- I neglected to leave libc6 until last)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .