升级glibc极可能造成系统无法执行命令,请谨慎升级


安装jdk1.8需要glibc 2.4版本

查看glibc版本为2.3.4

glibc版本升级_第1张图片


升级步骤:

cp -a /lib/ /lib.2.3.4            #复制旧版本lib库文件

ldd /bin/ls                #查看coreutils的应用程序依赖动态链接库文件位置,后面需要切换到该目录执行操作

glibc版本升级_第2张图片

#下载安装

wget https://mirrors.tuna.tsinghua.edu.cn/gnu/glibc/glibc-2.4.tar.gz

tar -zxvf glibc-2.4.tar.gz

cd glibc-2.4

mkdir build && cd build

../configure --prefix=/usr/  --with-headers=/usr/include

make

make install


执行make install后会有如下报错,因为在make install的时候,/lib/ld-linux.so.2从ld-2.3.4.so指向了ld-2.4.so,但/lib/tls/libc.so.6仍然指向                  /lib/tls/libc-2.3.4.so。/lib/ld-linux.so.2和lib/tls/libc.so.6指向不同版本的库文件导致安装失败。

glibc版本升级_第3张图片


执行如下命令:

cd /lib/tls/        #动态链接库文件位置

#/lib.2.3.4是旧lib库目录

LD_LIBRARY_PATH=/lib.2.3.4 /lib.2.3.4/ld-linux.so.2 /bin/cp -f ../libthread_db-1.0.so .

LD_LIBRARY_PATH=/lib.2.3.4 /lib.2.3.4/ld-linux.so.2 /bin/cp ../libc-2.4.so .

LD_LIBRARY_PATH=/lib.2.3.4 /lib.2.3.4/ld-linux.so.2 /bin/cp ../libm-2.4.so .

LD_LIBRARY_PATH=/lib.2.3.4 /lib.2.3.4/ld-linux.so.2 /bin/cp ../libpthread-2.4.so .

LD_LIBRARY_PATH=/lib.2.3.4 /lib.2.3.4/ld-linux.so.2 /bin/cp ../librt-2.4.so .

LD_LIBRARY_PATH=/lib.2.3.4 /lib.2.3.4/ld-linux.so.2 /bin/ln -sf libc-2.4.so libc.so.6 

LD_LIBRARY_PATH=/lib.2.3.4 /bin/ln -sf libm-2.4.so libm.so.6 

LD_LIBRARY_PATH=/lib.2.3.4 /bin/ln -sf libpthread-2.4.so libpthread.so.0 

LD_LIBRARY_PATH=/lib.2.3.4 /bin/ln -sf librt-2.4.so librt.so.1


切换到安装目录继续安装

cd /root/glibc-2.4/build && make install


查看glibc版本

image.png

升级成功


如果升级完成出现中文字符乱码情况,请尝试执行

localedef -v -c -i en_US -f UTF-8 en_US.UTF-8

export LC_ALL=""