在我的节点目录中运行docker-compose up
时,我得到了
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /app/node_modules/bcrypt/lib/binding/bcrypt_lib.node)
但我绝对有这种瑕疵:
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4.2
GLIBCXX_3.4.2
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
我试过
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
根据https://askubuntu.com/questions/164296/glibcxx-3-4-15-not-found,但我得到了同样的错误。我不知道如何解决这个问题,并且无法在其他任何地方找到解决方案。
如果重要的话,这是在Ubuntu 16.04上。
答案 0 :(得分:1)
npm上的某些节点插件使用node-pre-gyp
来提供下载预编译的插件二进制文件的功能,这样您就不需要安装编译器来使用它(主要用于Windows,通常比较困难)建立一个构建环境。)
对于这些类型的插件,您可以指定--build-from-source
command line option告诉node-pre-gyp
始终在本地编译,而不是下载其中一个预编译的插件二进制文件。
通过使用此标志安装插件,可以在使用不同glibc ABI的旧/新机器上编译预编译的插件二进制文件时避免此类错误。