0. 概述
在 CentOS 中,经常我们运行一些软件(尤其是重新自己编译过 GCC 之后)会出现因为 GLIBC 版本问题无法运行的情况,于是乎就需要自行编译解决,本文就提供一个示例如何编译解决。
libc,全称为 C 标准库 (Standard C Library),是一个在 UNIX、Linux、BSD、Mac OS X 等 POSIX 系统上为开发者提供核心应用程序接口 (API) 的开源库。这个库提供了很多基本的接口,比如 I/O 处理、字符串操作、内存分配等,而且几乎所有的应用程序和系统都依赖于它。如果你替换 libc,新的库文件可能会和你的系统、应用程序或其他库不兼容。
升级 libc 是高级操作,如果你对 Linux 系统不熟悉,请放弃升级,关闭这篇文章。
升级 libc 是高级操作,如果你对 Linux 系统不熟悉,请放弃升级,关闭这篇文章。
升级 libc 是高级操作,如果你对 Linux 系统不熟悉,请放弃升级,关闭这篇文章。
1. 问题确认
如果想确认一下自己的环境是否真的没有这个 GLIBC 版本,那么可以这么看一下:
[root@liqiang.io]# 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 但是还没有的话,那需要自行设置一下加载目录:
[root@liqiang.io]# export LD_LIBRARY_PATH=/opt/glibc-2.18/lib
[root@liqiang.io]# strings /usr/lib64/libc.so.6 | grep GLIBC_2.1
2. 下载源码
如果需要自行编译安装的话,那么肯定源码还是要下载的:
[root@liqiang.io]# wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.18.tar.gz
3. 编译安装
编译安装就是常见的几步走了:
[root@liqiang.io]# tar -zxvf glibc-2.18.tar.gz
[root@liqiang.io]# cd glibc-2.18
[root@liqiang.io]# mkdir build && cd build
[root@liqiang.io]# ../configure --prefix=/opt/glibc-2.18
[root@liqiang.io]# make -j4 && make install
4. 验证效果
最后就是验证一下是否已经正确安装了。
[root@liqiang.io]# export GLIBC_PATH=/opt/glibc-2.18/lib
[root@liqiang.io]# strings /usr/lib64/libc.so.6 | grep GLIBC_2.18
GLIBC_2.18
GLIBC_2.18
5. 错误救援
[root@liqiang.io]# export LD_LIBRARY_PATH=/usr/lib64
[root@liqiang.io]# strings /opt/glibc-2.18/lib/libc.so.6 | grep GLIBC_2.18
GLIBC_2.18
GLIBC_2.18
有同学喷按照我上面的操作之后,整个终端都出错了(我要强调一下,我的以上操作只会影响当前的终端,并且是可恢复的),不会影响系统重启或者新的登陆终端,以下是我的操作过程截图:
图 1:操作失误救援 |
---|