0. 概述

在 CentOS 中,经常我们运行一些软件(尤其是重新自己编译过 GCC 之后)会出现因为 GLIBC 版本问题无法运行的情况,于是乎就需要自行编译解决,本文就提供一个示例如何编译解决。

1. 问题确认

如果向确认一下自己的环境是否真的没有这个 GLIBC 版本,那么可以这么看一下:

[[email protected]]# strings /usr/lib64/libc.so.6 | grep GLIBC_2.1
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
... ...

如果自己重新编译了 GLIBC 但是还没有的话,那需要自行设置一下加载目录:

[[email protected]]# export LD_LIBRARY_PATH=/usr/local/lib64/
[[email protected]]# strings /usr/lib64/libc.so.6 | grep GLIBC_2.1

2. 下载源码

如果需要自行编译安装的话,那么肯定源码还是要下载的:

[[email protected]]# wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.18.tar.gz

3. 编译安装

编译安装就是常见的几步走了:

[[email protected]]# tar -zxvf glibc-2.18.tar.gz
[[email protected]]# cd glibc-2.18
[[email protected]]# mkdir build && cd build
[[email protected]]# ../configure --prefix=/opt/glibc-2.18
[[email protected]]# make -j4 && make install

4. 验证效果

最后就是验证一下是否已经正确安装了。

[[email protected]]# export GLIBC_PATH=/opt/glibc-2.18/lib
[[email protected]]# strings /usr/lib64/libc.so.6 | grep GLIBC_2.18
GLIBC_2.18
GLIBC_2.18

5. 错误救援

[[email protected]]# LD_PRELOAD=/lib64/libc-2.17.so strings /opt/glibc-2.18/lib/libc.so.6 | grep GLIBC_2.18
GLIBC_2.18
GLIBC_2.18

6. Ref