The following operations are performed on centos 6.3 x86_64:
1. attempt to run the program and prompt "libc. so.6: Version 'glibc _ 100' not found ", because the glibc version of the system is too low and glibc version is used in software compilation:
[[email protected] src]$ ./redis-server ./redis-server: /lib64/libc.so.6: version `GLIBC_2.14‘ not found (required by ./redis-server)
2. view the versions supported by glibc:
[[email protected] src]$ strings /lib64/libc.so.6 | grep GLIBC_GLIBC_2.2.5GLIBC_2.2.6GLIBC_2.3GLIBC_2.3.2GLIBC_2.3.3GLIBC_2.3.4GLIBC_2.4GLIBC_2.5GLIBC_2.6GLIBC_2.7GLIBC_2.8GLIBC_2.9GLIBC_2.10GLIBC_2.11GLIBC_2.12GLIBC_PRIVATE
[wo[email protected] src]$ rpm -qa | grep glibcglibc-common-2.12-1.80.el6_3.6.x86_64glibc-2.12-1.80.el6_3.6.x86_64glibc-headers-2.12-1.80.el6_3.6.x86_64glibc-devel-2.12-1.80.el6_3.6.x86_64
3. You can see that the current system only supports version 2.12 at most, so you need to install the new version to solve this problem:
The compilation and installation steps are as follows:
A. Go to http://www.gnu.org/software/libc/download the latest version. Here I download the glibc-2.14.tar.xz version, decompress it to any directory to prepare for compilation.
wget http://ftp.gnu.org/gnu/glibc/glibc-2.4.tar.gz
B. decompress the package ~ /Glibc-2.14/
[[email protected] src]# cd /home/work/glibc-2.14/[[email protected]-mc-face01 glibc-2.14]# lsBUGS ChangeLog.2 NAMESPACE bits elf libidn po stringCANCEL-FCT-WAIVE ChangeLog.3 NEWS build extra-lib.mk libio posix sunrpcCANCEL-FILE-WAIVE ChangeLog.4 NOTES catgets extra-modules.mk locale pwd sysdepsCONFORMANCE ChangeLog.5 PROJECTS conf gmon localedata resolv sysvipcCOPYING ChangeLog.6 README config.h.in gnulib login resource termiosCOPYING.LIB ChangeLog.7 README.libm config.make.in grp mach rt test-skeleton.cChangeLog ChangeLog.8 Rules configure gshadow malloc scripts timeChangeLog.1 ChangeLog.9 Versions.def configure.in hesiod manual setjmp timezoneChangeLog.10 FAQ WUR-REPORT conform hurd math shadow tls.make.cChangeLog.11 FAQ.in abi-tags cppflags-iterator.mk iconv misc shlib-versions version.hChangeLog.12 INSTALL abilist crypt iconvdata nis signal wcsmbsChangeLog.13 LICENSES aclocal.m4 csu include nptl socket wctypeChangeLog.14 Makeconfig aout ctype inet nptl_db soft-fpChangeLog.15 Makefile argp debug intl nscd stdio-commonChangeLog.16 Makefile.in assert dirent io nss stdlibChangeLog.17 Makerules autom4te.cache dlfcn libc-abis o-iterator.mk streams
C. Create a build directory in the glibc source code directory and run CD to enter the build directory.
[[email protected] glibc-2.14]# mkdir build[[email protected]-mc-face01 glibc-2.14]# cd build
D. Run configure configuration, make & sudo make install
1. [[email protected] build]# ../configure --prefix=/opt/glibc-2.14
If config fails in this step, the following error is displayed:
checking whether ranlib is necessary... nochecking LD_LIBRARY_PATH variable... contains current directoryconfigure: error:*** LD_LIBRARY_PATH shouldn‘t contain the current directory when*** building glibc. Please change the environment variable*** and run configure again.
In this case, first view LD_LIBRARY_PATH:
echo $LD_LIBRARY_PATH
/opt/soft/jdk/jre/lib/amd64/server:
In fact, there are limits on the path settings:
# Test if LD_LIBRARY_PATH contains the notation for the current directory# since this would lead to problems installing/building glibc.# LD_LIBRARY_PATH contains the current directory if one of the following# is true:# - one of the terminals (":" and ";") is the first or last sign# - two terminals occur directly after each other# - the path contains an element with a dot in it
So here we only need to remove the path separator ':' At the end of LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/opt/soft/jdk/jre/lib/amd64/server
Continue to run
2. [[email protected] build]# make -j43. [[email protected] build]# sudo make install
4. Temporarily modify Environment Variables
[[email protected] build]# export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
5. Now we can start redis normally.
[[email protected] build]# cd ~/app/redis-2.8.13/src[[email protected]-mc-face01 src]# ./redis-server
Centos installation redis2.8.13 reminder "libc. so.6: Version 'glibc _ 000000' not found" system glibc version is too low