glibc版本太低,造成个别脚本会执行报错,如下错误
1、查看系统glibc支持的版本
?strings /lib64/libc.so.6 |grep GLIBC_?
?
可以看到最高只支持2.12版本,所以考虑编译解决这个问题:
2、到http://ftp.gnu.org/gnu/glibc/下载最新glibc版本
我这里下载了glibc-2.14.tar.xz这个版本,解压到任意目录准备编译
?? 这里解压到/home/VMdisks/glibc-2.14/
3、在glibc源码目录建立构建目录,并cd进入构建目录
[ghui@StuOS?glibc-2.14]$?mkdir?build??
[ghui@StuOS?glibc-2.14]$?cd?build??
4、运行configure配置,make&& sudo? make install
1.?[ghui@StuOS?build]$?../configure?--prefix=/opt/glibc-2.14??
2.?[ghui@StuOS?build]$?make?-j4???
3.?[ghui@StuOS?build]$?sudo?make?install??
5、临时修改环境变量
1.?[ghui@StuOS?bin]$?export?LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH??
6、修改软连接。
这里要注意,更新系统里的链接(我的是/lib64/libc.so.6) 很容易出错,我不清楚有没有更好的办法,一般都是删除旧链接,建立新链接。但删除旧链接后,很多命令直接不能用了,因为此时中不到glibc的库了。这个时候就需要临时指定一个glibc库,方法如下(libc.so改个名以便好以后更新的其他版本区分):
1.?[ghui@StuOS?bin]$?cp/opt/glibc-2.14/lib/libc-2.14.so /lib64/libc-2.14.so
2.?[ghui@StuOS?bin]$?rm–f /lib64/libc.so.6
3.?[ghui@StuOS?bin]$?LD_PRELOAD=/lib64/libc.so.6ln -s /lib64/libc-2.14.so /lib64/libc.so.6
4.?[ghui@StuOS?bin]$strings /lib64/libc.so.6 |grep GLIBC