希望这是发帖的正确论坛。即将出现 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 月终将结束生命。