首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除符号链接libc.so.6后如何恢复?

删除符号链接libc.so.6后如何恢复?
EN

Stack Overflow用户
提问于 2012-09-03 14:13:40
回答 10查看 43.4K关注 0票数 32

在我们的服务器中,指向libc.so.6的符号链接已被删除。现在系统中的二进制文件都不起作用。为了解决这个问题,我试过:

代码语言:javascript
复制
/bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6

正如预期的那样,这给了我:

代码语言:javascript
复制
/bin/ln: error while loading shared libraries: libc.so.6: 
    cannot open shared object file: No such file or directory

我也试过:

代码语言:javascript
复制
/lib/ld-linux-x86-64.so.2  --inhibit-rpath /lib/libc.so.6 \
   --library-path /lib/libc-2.11.3.so \
   /bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6

结果是一样的。进一步的失败尝试包括cp,mv,cat。

我是通过ssh连接的,我相信在这个会议结束后,我将无法打开另一个会议。有没有办法修复这个系统(也许是使用bash内置的)?

编辑我做了:

代码语言:javascript
复制
while read line; do echo $line; done < /lib/libc-2.11.3.so > libc.so.6

若要复制该文件并尝试使用:

代码语言:javascript
复制
/lib/ld-linux-x86-64.so.2  --inhibit-rpath libc.so.6 --library-path . \
  /bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6

并得到:

代码语言:javascript
复制
/bin/ln: error while loading shared libraries: ./libc.so.6: ELF file OS ABI invalid
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2012-09-03 14:38:45

您可以简单地运行ldconfig。大多数发行版都是作为静态二进制文件发布的。

票数 38
EN

Stack Overflow用户

发布于 2013-05-07 12:33:24

这在我的例子中有所帮助(实际版本取决于您的库):

代码语言:javascript
复制
ldconfig -l -v /lib/libc-2.13.so
票数 13
EN

Stack Overflow用户

发布于 2014-01-05 01:55:40

尝试:

代码语言:javascript
复制
LD_PRELOAD=/lib/libc-2.17.so ln -s /lib/libc-2.17.so /lib/libc.so.6

注意:实际版本取决于您的库。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12249547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档