nodejs报错处理

错误内容

npm -v
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)

从错误消息来看,Node.js 12 的二进制文件需要更新版本的 glibc 和 libstdc++。CentOS 7 自带的库版本对于这个 Node.js 版本来说是不够的。为了解决这个问题,你有以下几种选择:

  1. 使用其他 Node.js 发行版:这可能是最简单的解决方案。例如,使用 Node.js 的官方二进制分发版或使用 NVM (Node Version Manager)。

  2. 使用 NVM (Node Version Manager)

    NVM 允许你在同一台机器上安装和使用多个 Node.js 版本。

    a. 首先,你需要删除当前的 Node.js 安装:

    sudo yum remove nodejs

    b. 安装 NVM:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

    关闭终端并重新打开,或执行以下命令来激活 nvm:

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

    c. 使用 NVM 安装 Node.js 12:

    nvm install 12

    d. 验证安装:

    node -v
    npm -v
  3. 手动升级 glibc 和 libstdc++:这是一个比较复杂且可能会破坏系统稳定性的方法。除非你知道自己在做什么,否则不建议采取这种方法。

  4. 考虑使用更高版本的 CentOS:例如,CentOS 8 可能会包含你需要的库版本。但这可能涉及重新配置或迁移整个系统。

建议你首先尝试使用 NVM 安装 Node.js,因为这是一个相对安全和简单的方法。

标签

发表评论