linux – 使用较新版本的glibc时出错
我试图在
linux服务器上安装tensorflow,我只是一个没有root权限的用户.当我通过跳转服务器ssh到它时,我无法传输文件.系统如下:
Linux THENAME_OF_SURVER 2.6.32-573.18.1.el6.x86_64#1 SMP Tue 2月9日22:46:17 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux 我通过pip install tensorflow安装了tensorflow,tensorflow程序会显示以下内容: ImportError:/lib64/libc.so.6:找不到版本“GLIBC_2.16” 我安装了新版本的glibc git clone git://sourceware.org/git/glibc.git 按照在线说明,我通过以下方式更改了环境变量: export LD_LIBRARY_PATH = / home / MYNAME / dependency / glibc-2.16 / lib 但这导致我遇到一个问题:我不能使用任何命令.例如,我打电话给ls,它会像这样警告我: ls:加载共享库时出错:__ docso_time:dlopen()的无效模式:参数无效 然后我按照另一条指令运行命令,如下所示: /home/MYNAME/dependency/glibc-2.16/lib/ld-linux-x86-64.so.2 –library-path /home/MYNAME/dependency/glibc-2.16/lib:$LD_LIBRARY_PATH:/path/to/ gcc-5.2.0 / lib64:/usr/lib64 /:/usr/lib64 / ls (我不知道在哪里可以找到与gcc-5.2.0类似的文件夹,我的gcc显示/usr/local / sbin / gcc,但它链接到/usr/local/gcc-5.3.0/bin/gcc,没有lib64子文件夹) 但随后又出现了以下警告: ls:加载共享库时出错:ls:无法打开共享对象文件 我知道我可以通过将变量导出为空来再次使用ls.但我仍然无法使用新版本的glibc.谁能帮助我如何正确链接新的glibc?任何建议,将不胜感激! 编辑: > LD_LIBRARY_PATH = / home / MYNAME / dependency / glibc-2.16 / lib python EDIT2&摘要: 为了使Employed Russian的答案更加详细,我会在此处粘贴我的最终解决方案. 我的目标是在我没有root权限的服务器上使用Python中的tensorflow.我被警告导入tensorflow时找不到ImportError:/lib64/libc.so.6:版本’GLIBC_2.16′. 根据Employed Russian的回答,我使用以下命令运行我的命令: LD_LIBRARY_PATH = / home / USERNAME / dependency / glibc-2.17 / lib /:/ lib64 /:/usr/local / gcc-5.3.0 / lib64 / /home/USERNAME/dependency/glibc-2.17/lib/ld-2.17.所以/ home / USERNAME / anaconda2 / bin / python 将命令拆分为以下部分(我将使用???来表示不同人的路径.): > LD_LIBRARY_PATH = >这部分涉及依赖 > /???/glibc-2.17/lib/ld-2.17.so 其他事情: > glibc-2.17是从gnu下载的.我选择了2.17因为张量流需要2.17和2.17工作正常. 解决方法
This answer解释了为什么LD_LIBRARY_PATH不起作用,以及你应该做什么.
该错误通常意味着您在ld-linux和libc.so.6之间存在不匹配.他们必须匹配. 如果您通过/home/MYNAME/…/ld-2.16.so使用直接加载器调用,则还必须安排加载/home/MYNAME/…/libc.so.6. 您可以通过将–library-path …传递给ld-2.16.so或适当地设置LD_LIBRARY_PATH来实现. 你的命令与ld-2.16 –library-path … ls几乎是正确的.你缺少的是ld-2.16不会搜索你的PATH.你需要给它完整的路径名:ld-2.16 –library-path … / bin / ls. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |