According to distrowatch, CentOS 6.10 shipped with GLIBC-2.12.
I used
ldd --version
ldd is highly unreliable for anything (it will lie to you).
What matters is what version of /lib64/libc.so.6 you have. You can find out by running it, like so:
/lib64/libc.so.6
Answer from Employed Russian on Stack OverflowYou 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'.
command line - /lib64/libc.so.6: version 'GLIBC_2.14' not found in Redhat 6.5, for running a software in non-desktop version of Linux - Unix & Linux Stack Exchange
node.js - /lib64/libc.so.6: version `GLIBC_2.14' not found. Why am I getting this error? - Stack Overflow
/lib64/libc.so.6: version `GLIBC_2.14' not found - Nagios Support Forum
ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found
Videos
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 need to install glibc alongside your current installation of glibc as you cannot update to glibc 2.14 directly in centos 6.x safely. Follow the steps below to install glibc 2.14:
mkdir ~/glibc214cd ~/glibc214wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gztar zxvf glibc-2.14.tar.gzcd glibc-2.14mkdir buildcd build../configure --prefix=/opt/glibc-2.14make -j4sudo make installexport LD_LIBRARY_PATH=/opt/glibc-2.14/lib(for current login session) OR addLD_LIBRARY_PATH=/opt/glibc-2.14/libin the /etc/environment and performsource /etc/environment(to add env variable permanently)
To install locally, 8th line in first answer became
../configure --prefix=$HOME/.local
then we do not need the "sudo" in 10th line. i.e.
make install
is enough.
You might need to
touch $HOME/.local/etc/ld.so.conf
line 11 becomes:
export LD_LIBRARY_PATH="$HOME/.local/lib"
in .bash_profile of el6
So why am I getting GLIBC_2.14 error?
Because your program depends on a symbol with that version, and you are running it on a system which doesn't provide it.
Shouldn't it be 2.19 error?
No.
When a new symbol is introduced, it gets a version assigned to it. Usually that version is the not yet released glibc version, i.e. if the current released version is 2.13, the new symbol gets version 2.14 assigned to it.
That version stays with this symbol (unless a new and incompatible version of the same symbol is introduced later).
The x86_64 GLIBC-2.19 has the following versioned symbols:
$ objdump -T /lib/x86_64-linux-gnu/libc.so.6 | grep ' g ' | head
0000000000078110 g DF .text 0000000000000124 GLIBC_2.2.5 putwchar
0000000000096a70 g DF .text 0000000000000020 GLIBC_2.2.5 __strspn_c1
000000000010a2b0 g DF .text 0000000000000010 GLIBC_2.4 __gethostname_chk
0000000000096a90 g DF .text 000000000000001a GLIBC_2.2.5 __strspn_c2
0000000000110570 g DF .text 00000000000000a5 GLIBC_2.2.5 setrpcent
00000000000a7ba0 g DF .text 000000000000000a GLIBC_2.2.5 __wcstod_l
0000000000096ab0 g DF .text 0000000000000022 GLIBC_2.2.5 __strspn_c3
00000000000fa950 g DF .text 0000000000000021 GLIBC_2.3.2 epoll_create
000000000010a2c0 g DF .text 0000000000000010 GLIBC_2.4 __getdomainname_chk
00000000000fab60 g DF .text 0000000000000021 GLIBC_2.2.5 klogctl
....
That is, if I link a program that calls putwchar, I will need at minimum version 2.2.5, but if my program also calls epoll_create, then I will need a minimum version of 2.3.2.
Your program calls some symbol with version GLIBC_2.14, most likely this one:
0000000000091620 g iD .text 000000000000003d GLIBC_2.14 memcpy
Your program is known to not call any of the symbols below (or you would have gotten a different required version):
$ objdump -T /lib/x86_64-linux-gnu/libc.so.6 | egrep 'GLIBC_2.1[5-9]'
000000000010ab30 g DF .text 0000000000000014 GLIBC_2.16 __ppoll_chk
00000000001087d0 w DF .text 000000000000003e GLIBC_2.17 clock_getcpuclockid
000000000010aaf0 g DF .text 0000000000000017 GLIBC_2.15 __fdelt_warn
000000000010aaf0 g DF .text 0000000000000017 GLIBC_2.15 __fdelt_chk
000000000003c6b0 g DF .text 00000000000000fc GLIBC_2.18 __cxa_thread_atexit_impl
00000000000fb070 g DF .text 0000000000000024 GLIBC_2.15 process_vm_writev
00000000000bd420 g DF .text 00000000000001ba GLIBC_2.15 scandirat
00000000000af970 g DF .text 0000000000000019 GLIBC_2.16 c16rtomb
00000000001088f0 w DF .text 0000000000000090 GLIBC_2.17 clock_nanosleep
00000000000af6e0 g DF .text 0000000000000282 GLIBC_2.16 mbrtoc16
00000000000a3c70 w DF .text 0000000000000230 GLIBC_2.16 mbrtoc32
0000000000000000 g DO *ABS* 0000000000000000 GLIBC_2.15 GLIBC_2.15
0000000000000000 g DO *ABS* 0000000000000000 GLIBC_2.16 GLIBC_2.16
0000000000000000 g DO *ABS* 0000000000000000 GLIBC_2.17 GLIBC_2.17
0000000000000000 g DO *ABS* 0000000000000000 GLIBC_2.18 GLIBC_2.18
00000000000b9f40 g DF .text 0000000000000042 GLIBC_2.16 timespec_get
0000000000083120 w DF .text 0000000000000009 GLIBC_2.16 aligned_alloc
0000000000108810 w DF .text 0000000000000025 GLIBC_2.17 clock_getres
0000000000108880 w DF .text 0000000000000064 GLIBC_2.17 clock_settime
00000000000f8240 w DF .text 0000000000000068 GLIBC_2.16 getauxval
00000000000e44f0 g DF .text 0000000000000015 GLIBC_2.15 posix_spawn
0000000000108840 w DF .text 000000000000003b GLIBC_2.17 clock_gettime
00000000000a3ea0 w DF .text 00000000000001ea GLIBC_2.16 c32rtomb
000000000003c0b0 w DF .text 000000000000001b GLIBC_2.17 secure_getenv
000000000010ab10 g DF .text 0000000000000014 GLIBC_2.16 __poll_chk
00000000000f8240 g DF .text 0000000000000068 GLIBC_2.16 __getauxval
00000000000fb040 g DF .text 0000000000000024 GLIBC_2.15 process_vm_readv
00000000000bd420 w DF .text 00000000000001ba GLIBC_2.15 scandirat64
00000000000e4510 g DF .text 0000000000000015 GLIBC_2.15 posix_spawnp
What
ldd --verbose simulator
gives ?
I'd say GLIBC2.14 is the minimum required.
What is the version of libc.so on your system ?
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.