NPM 问题,从哪里开始

NPM 问题,从哪里开始

希望这是发帖的正确论坛。即将出现 stack overflow,但我认为这更符合你们的专业知识。

我有一个 centos 6.10 机器。它能正常运行 Node.js 和 npm。我不知道它们是哪个版本。我尝试通过运行以下命令将它们更新到 LTS

sudo npm install n -g

现在,每当我运行时npm都会出现此错误:

node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by node)

我尝试完全卸载 node 和 npm 并重新安装它们,但都没有成功。现在我束手无策了。有人能帮我看看我现在该怎么做吗?

答案1

你的 CentOS 太旧了。

你可以通过运行来检查该库属于哪个包yum provides /usr/lib64/libstdc++.so.6。 在我的例子中(在 CentOS 7 上,但这对这个来说并不重要),这是libstdc++-4.8.5-39.el7.x86_64

如果你抬头libstdc++pkgs.com 上适用于 CentOS 6 的软件包您将看到它是针对哪些 glibc 标头进行编译的。在本例中,您会看到最新版本是:

  • libstdc++.so.6(GLIBCXX_3.4.13)(64位)

您的输出表明较新的 npm 版本至少需要GLIBCXX_3.4.14

我猜你可以自己根据现有的库版本编译 node.js,但我宁愿将 CentOS 更新到较新的版本。它将2020 年 11 月终将结束生命

相关内容