2017-04-27 111 views
0

我一直在试图理解这种情况:Centos的6.6分割故障用glibc 2.14

我想在蟒蛇3使用Python包,需要的glibc 2.14。由于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)。在大多数机器上它不起作用。

有没有人有任何想法为什么这种奇怪的情况发生?或者,也许经历过这样的问题,

+0

[单个主机上的多个glibc库可能重复](http://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host) –

回答

1

没有人有任何想法,为什么这种奇怪的情况occures

由于this answer解释,你在做什么是不应该的工作:你有ld-linuxlibc.so.6之间的不匹配。

0

经过一些更多的调查后,我发现为实验室机器分配更多的内存(从2/4 GB到6或更多)会使segmentation fault错误消失。但是,32 GB的生产机器仍然存在问题。真奇怪。

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

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

此外,如果在图书馆有某种不匹配,那么它应该根本无法工作(......很可能)。

另外,正如我在开始时提到的,我注意到问题与内存有关(仍然不确定32 GB RAM机器发生了什么)。

还有一件事:我不编译python包,所以改变编译器选项od'myapp'(python包)不是一个选项。

虽然欣赏你的答案。