This often occurs when you build software in RHEL 7 and try to run on RHEL 6.
To update GLIBC to any version, simply download the package from
https://ftp.gnu.org/gnu/libc/
For example glibc-2.14.tar.gz in your case.
1. tar xvfz glibc-2.14.tar.gz
2. cd glibc-2.14
3. mkdir build
4. cd build
5. ../configure --prefix=/opt/glibc-2.14
6. make
7. sudo make install
8. export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
Then try to run your software, glibc-2.14 should be linked.
Answer from Yu Tao on Stack OverflowError: /lib64/libc.so.6: version `GLIBC_2.14' not found on RED-Hat(RHEL-6.5) Linux
redhat linux 6 glibc_2.14 not found error
dependencies - RHEL 6 - how to install 'GLIBC_2.14' or 'GLIBC_2.15'? - Stack Overflow
glibc - Error when launching VBox 4 on redhat 6 : /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libstdc++.so.6) - Stack Overflow
Videos
This often occurs when you build software in RHEL 7 and try to run on RHEL 6.
To update GLIBC to any version, simply download the package from
https://ftp.gnu.org/gnu/libc/
For example glibc-2.14.tar.gz in your case.
1. tar xvfz glibc-2.14.tar.gz
2. cd glibc-2.14
3. mkdir build
4. cd build
5. ../configure --prefix=/opt/glibc-2.14
6. make
7. sudo make install
8. export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
Then try to run your software, glibc-2.14 should be linked.
Naive question: Is it possible to somehow download GLIBC 2.15, put it in any folder (e.g. /tmp/myglibc) and then point to this path ONLY when executing something that needs this specific version of glibc?
Yes, it's possible.
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
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'.
You cannot update glibc on Centos 6 safely. However you can install 2.14 alongside 2.12 easily, then use it to compile projects etc. Here is how:
mkdir ~/glibc_install; cd ~/glibc_install
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/opt/glibc-2.14
make -j4
sudo make install
export LD_LIBRARY_PATH="/opt/glibc-2.14/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
To install glibc 2.14 in parallel, add the configure prefix:
tar zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/opt/glibc-2.14
make -j4
make install
Following this process, you'll be able to build 2.14 but you will need to tell the compiler where to look for glibc.
Below are the ways you can expose the glibc to your program.
LD_LIBRARY_PATH=/opt/glibc-2.14/lib
export LD_LIBRARY_PATH.
The library is exposed during your current login session.
You can permanently link your new glibc version like so, but please read the WARNING below:
ln -sf /opt/glibc-2.14/glibc-2.14.so /lib/libc.so.6.
Since libc.so.6 is just a symbolic link. Executing the above command will make the link point towards the new glibc library. However this step is not recommended since there are many programs in Linux which depend on older versions and will stop working.
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.
Hey, guys. I usually go with Ubuntu but right now I'm using an Arch VM (Cyberops Workstation) for a course I'm enrolled in. I'm having two separate issues. The first is that I'm trying to locate messsages and I get /usr/lib/libc.so.6: version \GLIBC_2.33' not found (required by locate). When I looked through that library, the file in question did not exist. I had already updated my entire system with -Syu, that changed nothing. I read sudo pacman -S libtool gcc gcc-libs would fix my problem and while now libc.so.6 exists, the same message pops up. What can I do?
I know I shouldn't partially update, but it's fine. I have exported an OVA of my system before tinkering with it and I can start over any time.
The second is that I'm also trying to install chkrootkit and I keep getting error: target not found: chkrootkit, even though as I've said I have already ran sudo pacman -Syu and so to my understanding any mirrors and repositories should have been updated. I figured I might need some kind of AUR helper, even though the guy in the Cisco instructional video is able to install it through pacman, but I keep having problems installing any of them.
I've got this error with buildroot-2022.11 when executing make.
Ubuntu 20.04 - added this repo as described in the link
sudo apt update
sudo apt install libc6
It automatically installed 2.35 for me.
In my case, replace FROM go:1.21 with FROM go:1.21.0-bullseye (docker) or try tinkering there.
I was trying to check if gcc was working and i see, that it isn't.
This is the full error message - https://i.imgur.com/8n3dRdv.png