You don't have a high enough version of libc6, that is causing the error.
From How to fix “/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found”? – Super User:
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).
So, you just need to upgrade your libc6 package. All versions of Ubuntu have at least version 2.15 because it's a faily important package (reference).
To upgrade it, use these commands in a terminal:
sudo apt-get update
sudo apt-get install libc6
Answer from kiri on askubuntu.comYou don't have a high enough version of libc6, that is causing the error.
From How to fix “/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found”? – Super User:
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).
So, you just need to upgrade your libc6 package. All versions of Ubuntu have at least version 2.15 because it's a faily important package (reference).
To upgrade it, use these commands in a terminal:
sudo apt-get update
sudo apt-get install libc6
For the benefit of those like me who are only experiencing this issue in one particular directory;
In my case there was a shared library file in my directory that was somehow throwing off the OS. I opened the folder in a file explorer, sorted by 'mime type' then deleted files of the type 'sharedlib' (or application/x-sharedlib) until my command (ls) worked again without that error. In my case the shared library file at fault was named 'libc.so.6'.
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:
Download libc6 and libc6-dev from Ubuntu 12.04 LTS
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_COMMANDMy 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.
You don't have to switch to the unstable to get glib >= 2.14. In fact, the testing branch (now stable, or Jessie) has glib-2.17 which you can pick just adding the testing repository and launching:
sudo apt-get install libc6-dev=2.17-7
or,
sudo apt-get -t testing install libc6-dev
You can add the switch --dry-run to see what will being installed before hand. You can see the status of the glibc package in the Debian Package Tracker System (Debian renamed eglibc package to simply glibc from Jessie onwards).
You can also just wait for Jessie release on April 25.
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:
Download
libc6andlibc6-devfrom Ubuntu 12.04 LTSRun
dpkgcommand 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_COMMANDMy application only uses
memcpy()from GLIBC_2.14, and it works.I don't know whether it will work successfully for other applications.
As j0h described, I was able to solve my problem. Here is what I have done:
- I read at Wikipedia about glibc. Glibc (better known as GNU C Library) has a fork for linux which is called libc6. Libc6 is available via apt.
- Run
apt-get updateto update the database. - Use
apt-cache policy libc6to find out the installed version and the candidate version, whereas the installed version can be also shown withldd --version. - Install the new candidate version with
apt-get install libc6 - Check the new version again by doing step 3 again to see your success.
For most security updates such as this you should be able to rest easy knowing that if your version of Ubuntu is still actively supported you will automatically receive such important updates.
Check in 'Software & Updates' that you have the correct boxes checked to:
- Enable you to receive Security Updates
- Allow regular checking of the Repository
- Optionally automatically download and install Security Updates
Below is a screenshot showing you the relevant section of 'Software & Updates':

This screenshot is for Ubuntu 15.1 Wily Werewolf but will be the same through most modern releases of Ubuntu...