希望这是发布的正确论坛。即将到来的堆栈溢出,但我认为这更多的是你们的专业知识。
我有一个 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 并重新安装它们,也没有运气。现在我没有技巧了。有人可以帮我解决我现在应该做什么吗?
你的 CentOS 太旧了。
您可以通过运行检查库属于哪个包
yum provides /usr/lib64/libstdc++.so.6
。在我的情况下(在 CentOS 7 上,但这并不重要)这是libstdc++-4.8.5-39.el7.x86_64
.如果您在 pkgs.com 上查找 CentOS 6的软件包,
libstdc++
您会看到它是针对哪些 glibc 头文件编译的。在这种情况下,您会看到最新版本是:您的输出显示较新的 npm 版本至少需要
GLIBCXX_3.4.14
.我想你可以根据你可用的库版本自己编译 node.js,但我宁愿将 CentOS 更新到更新的版本。无论如何,它会在 2020 年 11 月结束生命。