How to fix this error:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found
Linux alef 3.2.0-4-amd64 #1 SMP Debian 3.2.35-2 x86_64 GNU/Linux
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
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.
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:
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/
Run your command with specified LD_LIBRARY_PATH:
$ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND
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.
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)