【问题标题】:/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。

标签: node.js centos hummus.js gipc


【解决方案1】:

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

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

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

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

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

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

            ],
    #added by 11AND2
    "conditions": [
    [ 'OS=="linux"',
    {
        "cflags": ["-include gcc-preinclude.h"]
    }
    ]],
    #end added by 11AND2
       'sources': [
    
  6. 然后运行npm run rebuild 并等待:-)

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

【讨论】:

    【解决方案2】:

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

    1. mkdir ~/glibc214
    2. cd ~/glibc214
    3. wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
    4. tar zxvf glibc-2.14.tar.gz
    5. cd glibc-2.14
    6. mkdir build
    7. cd build
    8. ../configure --prefix=/opt/glibc-2.14
    9. make -j4
    10. sudo make install
    11. 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 请参阅此链接了解更多信息:stackoverflow.com/questions/19816275/…
    • 设置LD_LIBRARY_PATH 通常不起作用,原因如下:stackoverflow.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 中

      感谢和问候

      【讨论】:

        猜你喜欢
        • 2020-11-06
        • 2017-07-14
        • 2016-08-19
        • 1970-01-01
        • 2019-07-19
        • 2019-12-23
        • 1970-01-01
        • 2021-12-03
        • 2018-03-16
        相关资源
        最近更新 更多