libc.so.6: version `GLIBC_2.14' not found
[scode type="yellow"]写在前面的话:就一句,这个东西千万千万千万(重要的话说三遍)小心,一不留神可能就导致系统瘫痪,很麻烦的,我这里是CentOS6.* x64的操作系统。[/scode]
1.查看系统glibc支持的版本
strings /lib64/libc.so.6 |grep GLIBC_
2.下载安装包
到http://www.gnu.org/software/libc/
下载最新版本,我这里下载了glibc-2.14.tar.xz (http://mirror.bjtu.edu.cn/gnu/libc/glibc-2.14.tar.xz
)这个版本
3.开始编译安装
[scode type="yellow"]记得源码包的位置不要和下文中的../configure --prefix=/etc/glibc-2.14
中的--prefix=/etc/glibc-2.14
位置相同,不然在make过程中会出现如下错误报错:glibc-2.14/include/limits.h' are the same file
,如果出现了这个错误,不着急,将源码包换个位置继续make就行[/scode]
cd /usr/local/src
wget http://mirror.bjtu.edu.cn/gnu/libc/glibc-2.14.tar.xz
tar -Jxvf glibc-2.14.tar.xz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/etc/glibc-2.14
make -j4
复制ld.so.conf
,可以通过find / -name "ld.so.conf"
来查找
cp /etc/ld.so.conf /etc/glibc-2.14/etc/ld.so.conf
如果不经过上一步ld.so.conf
的复制,那么在make install
过程中出现如下错误:
Can't open configuration file /etc/glibc-2.14/etc/ld.so.conf: No such file or directory
make install
4.修改环境变量
临时
export LD_LIBRARY_PATH=/etc/glibc-2.14/lib:$LD_LIBRARY_PATH
永久
vi /etc/bashrc
在底部加入
export LD_LIBRARY_PATH=/etc/glibc-2.14/lib:$LD_LIBRARY_PATH
保存,执行source生效
source /etc/bashrc
5.修改/lib64/libc.so.6的软链接来源,由之前的libc-2.12.so修改为libc-2.14.so
[scode type="yellow"]这里有必要停顿一下,警告,下一步你要有一个非常稳定的网络,或者在VNC里面操作,因为在你删除原来的软连接后、创建新的软连接之前这个中间时刻,你很多操作可能因为原来的glic软连接被删除导致很多shell命令无法执行,这个时候只能在当前窗口操作,如果控制台窗口关闭那就麻烦了,用到glibc的东西实在是太多了,看看编译时间就让人头皮发麻[/scode]
cp /etc/glibc-2.14/lib/libc-2.14.so /lib64/
unlink /lib64/libc.so.6
如果这里报错了:error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
你需要输入ldconfig
,然后再创建软连接
ln -s /lib64/libc-2.14.so /lib64/libc.so.6
6.再次查看系统glibc支持的版本
strings /lib64/libc.so.6 |grep GLIBC
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭