redis-server进程启动报错并提示version'GLIBC_2.4' not found 问题和解决方法
编译环境GLIBC版本差异
前几天部署程序时,发现redis-server进程启动报错并提示version’GLIBC_2.4’ not found ,报错提示当前Liunx系统找不到GLIBC_2.14,
使用命令:
[root@cloudcard_01~]# strings /lib64/libc.so.6 | grep GLIBC;
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_PRIVATE
[root@cloudcard_01~]#
查看当前Liunx系统GLIBC版本:可以发现最高仅仅支持GLIBC_2.11低于所需要的2.14,所以redis-server进程启动失败,由此可以发现编译redis-server的编译机GLIBC版本(2.14)高于目标安装机的GLIBC版本(2.11)
解决办法
1:下载GLIBC_2.14
下载地址:
百度云 https://pan.baidu.com/s/1OtL1930wH08-DJ_laLoR_Q
提取码:qodo
下载后放到root目录下
2:安装GLIBC_2.14
解压
[root@cloudcard_01~]# tar -xzvf glibc-2.14.tar.gz
编译安装
[root@cloudcard_01~]# cd glibc.2.14
[root@cloudcard_01 glibc.2.14~]# mkdir build #创建编译目录
[root@cloudcard_01~]# cd build
[root@cloudcard_01 build~]# ../configure --prefix=/usr/local/glibc-2.14 #配置预编译
[root@cloudcard_01 build~]# make
[root@cloudcard_01 build~]# make localedata/install-locales #解决升级后乱码问题
[root@cloudcard_01 build~]# make install
3:更新系统库
cp /root/glibc-2.14/build/libc.so /lib64/libc-2.14.so
rm -rf /lib64/libc.so.6 # 删除原链接
LD_PRELOAD=/lib64/libc-2.14.so ln -s /lib64/libc-2.14.so /lib64/libc.so.6
更新系统库后查看GLIBC,如下表示成功
[root@cloudcard_01 build]# strings /lib64/libc.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_PRIVATE