dev*_*150 5 linux libraries segmentation-fault
我通过 SSH 连接到我没有 root 访问权限的机器。为了安装我从我的机器上传的库并将它们放在~/lib
远程主机的目录中。
现在,对于我运行的几乎所有命令,我都会收到以下错误(例如 for ls
)或一条Segmentation fault (core dumped)
消息。
ls: relocation error: /lib/libpthread.so.0: symbol __getrlimit, version
GLIBC_PRIVATE not defined in file libc.so.6 with link time reference
Run Code Online (Sandbox Code Playgroud)
唯一的命令,我已经成功运行是cd
与pwd
直到现在。通过使用 TAB 自动完成ls
,我几乎可以在目录中找到文件,因此我可以在目录中移动。
uname -r
也返回Segmentation fault (core dumped)
消息,所以我不确定我使用的是什么内核版本。
Ste*_*itt 26
由于您可以登录,因此没有任何重大问题;大概是您的 shell 的启动脚本添加~/lib
到LD_LIBRARY_PATH
,以及 中的坏库~/lib
,这就是导致您看到的问题的原因。
要解决此问题,请运行
unset LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
这将允许您运行rm
,vim
等等。如果合适的话,除去麻烦库和编辑你的启动脚本。
Phi*_*all 24
问题是您已将 的副本glibc
放入~/lib
目录,而该库与您将其上传到的系统不兼容。正在按照~/lib
中指定的方式引用该库$LD_LIBRARY_PATH
。
要临时解决此问题,只需unset LD_LIBRARY_PATH
- 这将像unset
内置的 shell一样工作。然后,您将能够运行您最喜欢的文本编辑器,以删除启动文件中首先设置变量的任何内容。