升级glibc极可能造成系统无法执行命令,请谨慎升级
安装jdk1.8需要glibc 2.4版本
查看glibc版本为2.3.4
升级步骤:
cp -a /lib/ /lib.2.3.4 #复制旧版本lib库文件
ldd /bin/ls #查看coreutils的应用程序依赖动态链接库文件位置,后面需要切换到该目录执行操作
#下载安装
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指向不同版本的库文件导致安装失败。
执行如下命令:
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版本
升级成功
如果升级完成出现中文字符乱码情况,请尝试执行
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
export LC_ALL=""