当我试图通过将最新的/lib64/libc.so.6: version 'GLIBC_2.14' not found版本安装到我的主目录来修复CentOS 6系统中的问题时,我发现我的计算机崩溃了。
$ conda
/public/home/liuxs/anaconda3/bin/python: relocation error: /lib64/librt.so.1: symbol __vdso_clock_gettime, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference
$ python
python: relocation error: /lib64/librt.so.1: symbol __vdso_clock_gettime, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference我尽我最大的努力删除所有我做过的事情,谷歌修复了这个问题,我失败了。我无法理解这个问题,它是如何发生的,我应该把注意力集中在哪一部分-- libc.so.6还是librt.so.1?这才是关键。
我没有根权限,因此不能更改lib、lib64等的文件。
$ ls -l $(locate librt.so.1)
lrwxrwxrwx 1 root root 13 Jul 6 2017 /lib64/librt.so.1 -> librt-2.12.so
lrwxrwxrwx 1 root root 17 Jul 6 2017 /lib64/rtkaio/librt.so.1 -> librtkaio-2.12.so
lrwxrwxrwx 1 root root 13 Aug 1 2017 /lib/i686/nosegneg/librt.so.1 -> librt-2.12.so
lrwxrwxrwx 1 root root 13 Aug 1 2017 /lib/librt.so.1 -> librt-2.12.so
lrwxrwxrwx 1 root root 17 Aug 1 2017 /lib/rtkaio/i686/nosegneg/librt.so.1 -> librtkaio-2.12.so
lrwxrwxrwx 1 root root 17 Aug 1 2017 /lib/rtkaio/librt.so.1 -> librtkaio-2.12.so
$ ls -l $(locate libc.so.6)
lrwxrwxrwx 1 root root 19 Dec 25 13:51 /lib64/libc.so.6 -> /lib64/libc-2.12.so
lrwxrwxrwx 1 root root 12 Aug 1 2017 /lib/i686/nosegneg/libc.so.6 -> libc-2.12.so
lrwxrwxrwx 1 root root 12 Aug 1 2017 /lib/libc.so.6 -> libc-2.12.so我在conda目录中也有这两个文件,它们不能是locate
$ ls -l $(find . -name "libc.so.6")
-rwxrwxr-x 1 liuxs liuxs 3985000 Jun 21 2017 ./lib/libc.so.6
lrwxrwxr-x 1 liuxs liuxs 14 May 10 19:26 ./pkgs/gcc_impl_linux-64-7.2.0-habb00fd_3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libc.so.6 -> libc-2.12.2.so
lrwxrwxr-x 1 liuxs liuxs 14 Mar 28 12:06 ./x86_64-conda_cos6-linux-gnu/sysroot/lib/libc.so.6 -> libc-2.12.2.so
[liuxs@HPC-login anaconda3]$ ls -l $(find . -name "librt.so.1")
lrwxrwxr-x 1 liuxs liuxs 15 Mar 28 11:25 ./pkgs/gcc_impl_linux-64-7.2.0-habb00fd_3/x86_64-conda_cos6-linux-gnu/sysroot/lib/librt.so.1 -> librt-2.12.2.so
lrwxrwxr-x 1 liuxs liuxs 15 Mar 28 12:06 ./x86_64-conda_cos6-linux-gnu/sysroot/lib/librt.so.1 -> librt-2.12.2.so我想可能是anaconda3中的文件造成了这个错误,但我不知道如何找到问题的根源。我不知道什么时候运行conda或python,这些命令使用的是librt.so.1和libc.so.6。
希望有人能帮我摆脱这一切。
发布于 2018-05-11 01:33:52
我找到了解决这个问题的方法,问题来自于
-rwxrwxr-x 1 liuxs liuxs 3985000 Jun 21 2017 ./lib/libc.so.6我把它的名字改为备份,系统现在就好了。尽管我不太明白为什么会起作用。但有趣的是,不管文件libc.so.6 在哪里,系统都会出错。可能不是一个好答案,我把它的名称从./lib/libc.so.6修改为./lib/libc.so.6.bk,以防我需要后者。
谢谢@nos的评论。
您正在尝试运行一个与CentOS 6计算机运行时根本不兼容的程序。您应该找到一个适合于CentOS 6的预构建二进制文件,或者如果这是一个开放源码项目,则自己构建它。
https://stackoverflow.com/questions/50272594
复制相似问题