/lib64/libc.so.6:未找到版本“GLIBC_2.14”。为啥我会收到此错误?

Posted

技术标签:

【中文标题】/lib64/libc.so.6:未找到版本“GLIBC_2.14”。为啥我会收到此错误?【英文标题】:/lib64/libc.so.6: version `GLIBC_2.14' not found. Why am I getting this error?/lib64/libc.so.6:未找到版本“GLIBC_2.14”。为什么我会收到此错误? 【发布时间】:2018-11-06 23:11:43 【问题描述】:

我在节点 js 中工作。我已经安装了鹰嘴豆泥包。它安装正确。我正在使用这个包来修改 pdf 文件。在下载 pdf 时,我称其为鹰嘴豆泥。 Onclick 下载我收到此错误。

Error: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /var/www/html/node_modules/hummus/binding/hummus.node)
    at Object.Module._extensions..node (module.js:681:18)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/var/www/html/node_modules/hummus/hummus.js:5:31)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at /var/www/html/app/routes.js:2250:18
    at Layer.handle [as handle_request] (/var/www/html/node_modules/express/lib/router/layer.js:95:5)

在link 的帮助下,我更新了 glibc。但我仍然遇到同样的错误。请帮我找出问题所在。 我正在使用 CentOs 6.9

【问题讨论】:

在你的机器上添加env的输出。还有ldd /var/www/html/node_modules/hummus/binding/hummus.node,如果它有效 我不明白 你升级到的glibc版本是多少?另外,您能否提供这些命令的输出 1) env 2) ldd --version 3) yum list glibc 你有机会尝试我的答案吗? 我试过但没用。现在我将服务器更改为 ubuntu。 【参考方案1】:

好的,我无法重现此错误。但是,这可能有效:

    从作者https://github.com/galkahana/HummusJS下载整个hummusjs包(例如zip)。

    在其 package.json 中添加一个新的脚本条目:"rebuild": "node-pre-gyp rebuild"

    cd 到桌面上的包文件夹并运行“npm install”。

    为安全起见,删除 .binding 和 .build 文件夹。

    编辑包中的 binding.gyp 文件('sources'之前的新部分):

            ],
    #added by 11AND2
    "conditions": [
    [ 'OS=="linux"',
    
        "cflags": ["-include gcc-preinclude.h"]
    
    ]],
    #end added by 11AND2
       'sources': [
    

    然后运行npm run rebuild 并等待:-)

    尝试失败的示例并返回报告。也可以执行npm run test来运行模块测试用例。

【讨论】:

【参考方案2】:

您需要在当前安装 glibc 的同时安装 glibc,因为您无法在 centos 6.x 中安全地直接更新到 glibc 2.14。按照以下步骤安装 glibc 2.14:

    mkdir ~/glibc214 cd ~/glibc214 wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz tar zxvf glibc-2.14.tar.gz cd glibc-2.14 mkdir build cd build ../configure --prefix=/opt/glibc-2.14 make -j4 sudo make install export LD_LIBRARY_PATH=/opt/glibc-2.14/lib(用于当前登录会话)或在 /etc/environment 中添加 LD_LIBRARY_PATH=/opt/glibc-2.14/lib 并执行 source /etc/environment(永久添加 env 变量)

【讨论】:

sudo make install, Can't open configuration file /opt/glibc-2.14/etc/ld.so.conf: 在 ../configure --prefix=/opt/glibc-2.14 我得到了配置:错误:在`/root/glibc214/glibc-2.14/build'中:配置:错误:没有可接受的 C在 $PATH 中找到的编译器 @BhartiLadumor 请参阅此链接了解更多信息:***.com/questions/19816275/… 设置LD_LIBRARY_PATH 通常不起作用,原因如下:***.com/a/8658468/50617 修复:glibc-2.14/build/elf/ldconfig: Can't open configuration file glibc-2.14/etc/ld.so.conf: No such file or directory 我做了:cd glibc-2.14/etc/, sh -c "echo 'glibc-2.14/lib' &gt;&gt; ld.so.conf"【参考方案3】:

第 8 行。../configure --prefix=/opt/glibc-2.14 对我来说出错了

最后我不得不使用以下

../configure --prefix=/opt/glibc-2.14  libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes

【讨论】:

【参考方案4】:

第一个答案的第 8 行变成了

../glibc-2.14/configure --prefix=$HOME/.local

那么我们不需要第 10 行的“sudo”

make install 

够了

你可能需要

touch $HOME/.local/etc/ld.so.conf

第 11 行变为;

export LD_LIBRARY_PATH="$HOME/.local/lib"    

在 el6 的 .bash_profile 中

感谢和问候

【讨论】:

以上是关于/lib64/libc.so.6:未找到版本“GLIBC_2.14”。为啥我会收到此错误?的主要内容,如果未能解决你的问题,请参考以下文章

CentOS “/lib64/libc.so.6: version `GLIBC_2.14′ not found”系统glibc版本太低

/lib64/libc.so.6: version `GLIBC_2.14‘ not found

ARHEL 6 中误删 libc.so.6 文件后恢复

误删除/lib64/libc.so.6

误删除libc.so.6补救办法

/lib64/libc.so.6 升级动态库导致所有命令不能使用