【问题标题】:upgrade glibc 2.12 to 2.14 on Redhat 6.8 to work with Tensorflow and Python在 Redhat 6.8 上将 glibc 2.12 升级到 2.14 以使用 Tensorflow 和 Python
【发布时间】:2018-01-07 13:14:33
【问题描述】:

我们的服务器在 Redhat 6.8 上运行并安装了 Anaconda Python 3.6.1。

我们尝试导入 python 模块:Keras / Tensorflow,发现我们需要将 Glibc 从 2.12 升级到 2.14 才能使其正常工作。

我们根据此链接How to upgrade glibc from version 2.12 to 2.14 on CentOS?的说明下载并安装了Glibc 2.14作为单独安装

然后我们尝试在 Python python 解释器中导入 Keras 模块,它给我们错误“分段错误(核心转储)”错误并返回到操作系统命令提示符。在我们安装 Glibc 2.14 之前,它给了我们一个错误 Glibc 2.14 not found。

这是我们从一开始就安装 Tensorflow 的链接。 https://www.tensorflow.org/install/install_linux#InstallingAnaconda

有人知道如何解决这个问题吗?

谢谢!

【问题讨论】:

    标签: python tensorflow glibc


    【解决方案1】:

    您链接到的答案不正确。您可以安装第二个 glibc,但仍应使用 --prefix=/usr 编译它(并使用 DESTDIR 安装它),并且必须使用显式链接器调用运行所有程序,类似于构建中的 testrun.sh 脚本根可以。对于第一次试用,您可以直接使用 testrun.sh 运行您的程序二进制文件,甚至无需将 glibc 安装到目标目录。

    glibc wiki 有 testing instructions。这些也适用于使用新构建(但未安装)的 glibc 运行您自己的应用程序。

    如果您只使用LD_LIBRARY_PATH,您将遇到随机崩溃,因为动态链接器和库的其余部分不匹配。关于testrun.sh 方法有一些注意事项,因为它不提供完全隔离,但它通常会给出相当不错的结果。但是,与LD_LIBRARY_PATH的方式不同的是,它不会自动扩展到其他glibc下运行的进程启动的所有子程序。

    请注意,在这种情况下升级到 Red Hat Enterprise Linux 7 可能更容易(它提供了开箱即用的 glibc 2.17)。

    【讨论】:

    • 感谢您的回答,但对于我们的主要目的,我们需要使用从我们的 python 脚本调用 Karea 的 Tensorflow。我们被困在 Glibc 2.12 上,现在升级到 Redhat 7 不是我们的选择。另外,我不想修改/玩太多可能会破坏我们的 LIVE 系统的系统相关内容。还有其他更安全的选择可以做我们想要的吗?谢谢!
    • 您可以将新的 glibc 安装在任意路径中。您不必是 root,如果您想更加保守,甚至可以使用单独的用户帐户。
    • 嗨弗洛里安,我想试试,我必须撤消我从那个链接做的事情吗?如果是,如何?任意路径?意味着安装在其他文件夹上,你能给我一些正确安装 glibc 的详细步骤吗?非常感谢。
    • 我添加了一个指向 glibc wiki 的链接以及说明。
    猜你喜欢
    • 2016-06-07
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    相关资源
    最近更新 更多