linux上更新glibc

在升级高版本的glibc,但是自己删除原有软链接的时候,就会系统直接挂了。

原因:libc.so.6 是c运行时库 glibc的软链接,而系统几乎所有程序都依赖c运行时库。程序启动和运行时,是根据libc.so.6 软链接找到glibc库。删除libc.so.6将导致系统的几乎所有程序不能工作。

解决方法如下:

第一步:LD_PRELOAD,是个环境变量,用于动态库的加载,动态库加载的优先级最高,一般情况下,其加载顺序为LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/lib>/usr/lib

export LD_PRELOAD="库文件路径",设置要优先替换动态链接库

第二步:ln -sf后面加上f的参数

必要参数

  • -b 删除,覆盖以前建立的链接
  • -d 允许超级用户制作目录的硬链接
  • -f 强制执行
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -n 把符号链接视为一般目录
  • -s 软链接(符号链接)
  • -v 显示详细的处理过程

或者

 LD_PRELOAD=/opt/glibc-2.16.0/lib/libc-2.16.0.so ln -sf /opt/glibc-2.16.0/lib/libc-2.16.0.so /lib64/libc.so.6
上一篇:<转>eclipse如何修改dynamic web module version .


下一篇:libc.so.6: cannot open shared object file