libc.so.6共享库恢复

当libc.so.6这个基础glibc库被意外改名或删除时,可以通过设置LD_PRELOAD环境变量来恢复。本文以 libc.so.6 重命名为例,介绍了如何使用此变量恢复共享库。如果库被删除,可以从安装盘中找到并采用相同方法解决。

libc.so.6是很基础的库(glibc),很多可执行文件都会依赖这个共享库。当不小心把这个库改名字或者删除了,可以借助LD_PRELOAD变量来恢复这个共享库。

[root@localhost ~]# cat /etc/redhat-release #当前环境
Red Hat Enterprise Linux Server release 6.2 (Santiago)
[root@localhost ~]# arch
x86_64
[root@localhost ~]# rpm -qf /lib64/libc.so.6
glibc-2.12-1.47.el6.x86_64

LD_PRELOAD:在Unix操作系统的动态链接库的世界中,LD_PRELOAD就是这样一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库。


这里是用把libc.so.6重命名了为例,然后借助LD_PRELOAD变量把名字改过来;如果是libc.so.6被删除了,可以借助于安装盘,找到该库,用同样的方法也可以。

[root@localhost ~]# mv /lib64/libc.so.6 /lib64/libc.so.6.bak #重命名libc.so.6
[root@localhost ~]# mv /lib64/libc.so.6.bak /lib64/libc.s
ls ls: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libcap.so.2) ls: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libacl.so.1) [root@localhost opt]# ls: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libcap.so.2) > ls: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libacl.so.1) > [root@localhost opt]# find /opt -mindepth 1 -delete > find: /lib64/libselinux.so.1: no version information available (required by find) > find: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by find) -bash: 未预期的符号 `(' 附近有语法错误 [root@localhost opt]# rpm -qf /lib64/libcap.so.2 rpm: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by rpm) rpm: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /lib64/librpm.so.9) rpm: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/librpm.so.9) rpm: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/librpmio.so.9) rpm: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by /lib64/librpmio.so.9) rpm: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /lib64/librpmio.so.9) rpm: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by /lib64/libpopt.so.0) rpm: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libpopt.so.0) rpm: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by /lib64/liblzma.so.5) rpm: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /lib64/liblzma.so.5) rpm: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /lib64/libzstd.so.1) rpm: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /lib64/liblua-5.4.so) rpm: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /lib64/liblua-5.4.so) rpm: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libcap.so.2) rpm: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libacl.so.1) rpm: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /lib64/libsqlite3.so.0) rpm: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /lib64/libsqlite3.so.0) rpm: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libsqlite3.so.0) rpm: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /lib64/libsqlite3.so.0) rpm: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libaudit.so.1) rpm: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /lib64/libcrypto.so.3) rpm: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libcrypto.so.3) rpm: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /lib64/libcrypto.so.3) rpm: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libcap-ng.so.0)
07-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值