Centos 6.6 升级 glibc 问题

Centos 6.6 升级 glibc

下载地址:
http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
http://ftp.gnu.org/gnu/glibc/glibc-2.16.0.tar.gz

示例:

复制代码
tar xf glibc-2.16.0.tar.gz
cd glibc-2.16.0
mkdir build
cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make
可以有 -j 加快编译 -j 8
例如:make -j$(nproc)
make install

查看当前新的glibc版本库
strings /lib64/libc.so.6 |grep GLIBC_
复制代码

问题1:

glibc 升级 GLIBC_2.14 后指令不能用

示例1:
ls: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument
示例2:
ls: /lib64/libc-2.12.so: version `GLIBC_2.14' not found (required by /lib64/librt.so.1)

重新指向 libc.so.6
LD_PRELOAD=/lib64/libc-2.14.so ln -sf /lib64/libc-2.14.so /lib64/libc.so.6
LD_PRELOAD=/lib64/libc-2.16.so ln -sf /lib64/libc-2.16.so /lib64/libc.so.6

问题2:系统工具命令不能用;

示例1:glibc 升级 GLIBC_2.16 后 salt 不能用
/usr/bin/python2.7: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument
/lib64/libc.so.6: version `GLIBC_2.16' not found (required by /usr/lib64/libstdc++.so.6)

需要重新软链接 libstdc++.so.6
强制软连接
LD_PRELOAD=/lib64/libc-2.16.so ln -sf /lib64/libc-2.16.so /lib64/libc.so.6
ln -fs /usr/lib64/libstdc++.so.6.0.13 /usr/lib64/libstdc++.so.6

问题:Segmentation fault

GLIBC 还原:(centos 6.6
用 LD_PRELOAD 重新加载动态库;
加载的优先级:LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/lib>/usr/lib
export LD_PRELOAD
=/lib64/libc-2.12.so LD_PRELOAD=/lib64/libc-2.12.so ln -sf /lib64/libc-2.12.so /lib64/libc.so.6

 

posted @   01234567  阅读(691)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示