使用glibc 2.14进行Anaconda3中的Centos 6.6分段错误

时间:2017-04-27 12:03:23

标签: python centos anaconda glibc

我一直试图了解这种情况:

我想在Anaconda 3中使用需要glibc 2.14的python包。由于Centos 6.x只使用glibc 2.12,我编译了glibc 2.14并安装到/opt/glibc-2.14。

我正在安装Anaconda3。我运行的测试看起来像这样:

使用系统默认的glibc,它可以工作:

/opt/anaconda3/bin/python -c "import pandas"

但是使用已编译的glibc

export LD_LIBRARY_PATH=/opt/glibc-2.14/lib/:$LD_LIBRARY_PATH /opt/anaconda3/bin/python -c "import pandas"

它可以在某些机器上运行...我安装了20多台虚拟机,在某些机器上它总能正常工作,有些它永远不会工作,我收到:Segmentation fault (core dumped)。在大多数机器上它都不起作用。

有谁知道为什么会出现这种奇怪的情况?或者可能遇到过这个问题

2 个答案:

答案 0 :(得分:1)

  

有谁知道为什么会出现这种奇怪的情况

正如this answer所解释的那样,您正在做的事情不应该起作用:您在ld-linuxlibc.so.6之间存在不匹配。

答案 1 :(得分:0)

在进行了一些调查之后,我注意到为实验室机器分配了更多内存(从2/4 GB到6或更多)会导致segmentation fault错误消失。但是在具有32 GB RAM的生产机器上仍然存在问题。真奇怪。

现在我找到了一些解决方法,它们是来自anaconda的新python软件包,与glibc 2.12兼容(几天前可用),软件包的依赖性也不需要更新的glibc。

@Employed Russian: 谢谢,但可能不是Multiple glibc libraries on a single host的问题。在我的情况下,Python使用额外的glibc。问题是segmentation fault显示在随机机器上,而只使用新的glibc。另外我正在使用其他需要glibc 2.14的Python软件包,所以我知道我目前正在使用哪个版本的glibc。

此外,如果图书馆中出现某种不匹配的情况,那么它根本不应该起作用(......可能)。

正如我在开头提到的那样,我注意到问题与内存有关(仍然不确定32 GB的RAM机器会发生什么)。

还有一件事:我没有编译python包,所以更改compilator选项od'myapp'(python包)不是一种选择。

虽然感谢你的答案。