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)
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
/lib64/libc.so.6: version `GLIBC_2.14' not found - Nagios Support Forum
upgrade - How to update glibc to 2.14 in CentOS 6.5 - Unix & Linux Stack Exchange
Build Failure: /lib64/libc.so.6: version `GLIBC_2.14' not found (with JAVA_HOME and CC set)
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
Videos
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.
I've just spun up a C6 VM, installed the webtatic repo on it, and got the server package installed and running. I don't know how you got it to install on top of the existing mysqld, but at any rate, when I install it in place of the existing one, the glibc requirements are correct and are satisfied.
Why yours is asking for glibc 2.14, I can't understand. Maybe webtatic temporarily released one with wrong run-time links, then released a correct one over the top of it without bumping the version number. It's hard to say, but this is the sort of thing that sometimes happens when you decide to go off-piste and install things from strange repos.
If I were you, I'd make a copy of /var/lib/mysql, uninstall and reinstall the mysql55w packages (doing it cleanly this time!), then stop the freshly-installed mysqld, copying your /var/lib/mysql in place of any new one that might have appeared (and keeping any such new one to hand in case you need it), and trying to start the server up.
Failing that, get ready to restore your DB from backups.
This is what I think has happened. You installed an updated version of MySQL on your system using a 3rd party repository. Either those packages don't do correct dependency checking or the packages were forced onto the system.
At that time you did not restart the mysql-server service so for the last month you have been using your old package because it was already in memory and in use.
You restarted your system, this caused the old mysql binaries to be released and the new ones to come into use. The new binaries require a later version of GLIBC than is available.
How can i fix it?
Remove the versions you have installed right now. Install the version that comes with CentOS (you've probaly been using it anyway). Then do some research to find a repository that provides MySQL at the versionyou want with the dependencies met (or available) on your system.
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.