在centos 5

时间:2016-01-26 17:44:52

标签: python centos glibc tensorflow binutils

我试图在Centos 5上安装Tensorflow。 不幸的是,正如官方文档中所解释的那样,用pip安装它之后

  

sudo pip install --upgrade   https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

当我尝试在python shell上导入tensorflow时出现以下错误

  

导入错误:   /home/users/caohao/.jumbo/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so:   ELF文件OS ABI无效

github上的以下问题让我领先: https://github.com/tensorflow/tensorflow/issues/350

实际上,tensorflow要求glibc版本至少为2.17

当我输入

  

ldd --version

我有以下输出:

ldd (GNU libc) 2.5

所以我需要升级glibc。 我想表演一个" parallel"安装,因为升级glibc可能对我的机器有危险 所以我下载了源码,然后使用命令

  

../ glibc-2.18 / configure --prefix = / opt / glibc-2.18

将其安装在其他目录中

问题是我启动configure

时出现以下错误
  

configure:错误:汇编程序太旧,.cfi_personality支持缺失

我想我也必须更新binutils,所以我下载了源代码并将其安装在/opt/binutils-2.26/中以免损害系统。

但是当我尝试配置glibc时,我仍然遇到同样的错误。

以下是我的问题:

如何指定我想用哪个版本的binutil来构建glibc?

编辑:我应该有RTFM,回答是使用'--with-binutils = directory'选项

如果将glorc安装在/opt/glibc-2.18中,怎么能让它成为好的glibc版本?

仅供参考我使用python 2.7.11

非常感谢和最诚挚的问候

2 个答案:

答案 0 :(得分:2)

我有同样的问题。

但我使用的是CentOS 6.5,我的GLIBC(GNU libc)版本是2.12。

我尝试通过删除版本2.12并安装2.17来手动更改我的GLIBC版本。

它的依赖关系出现了很多问题,无法导入TensorFlow。

所以,我使用了 CentOS 7.0,它的默认GLIBC版本为2.17。

我可以使用CentOS 7.0安装和运行TensorFlow,没有任何问题。

谢谢。

答案 1 :(得分:0)

我认为张量流正好需要GLIB 2.17 而不是2.18。 由于某种原因,它得到了硬编码。

另见: Error while importing Tensorflow in python2.7 in Ubuntu 12.04. 'GLIBC_2.17 not found'