我正在使用当前LTS版本的Node.js 8.9.4。
如果我从Node.js网站(https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz)下载该版本的64位Linux二进制发行版,那么它包含的节点可执行文件将在Red Hat Enterprise Linux 6上运行(我需要能够定位此版本的RHEL)。
我还按照https://github.com/nodejs/node/blob/master/BUILDING.md#building-nodejs-on-supported-platforms的说明从源代码构建了Node v8.9.4。这样做需要gcc 4.9.4或更新,因为该页面,因为现在需要C ++ 11支持。
但是,由该构建产生的节点二进制文件不能在RHEL 6上运行,因为RHEL 6附带的标准C ++库(libstdc ++。so)来自GCC 4.4.7。从较新版本的GCC引用libgcc和libstdc ++是必要的,它用于构建节点以使其工作。
我认为这意味着Node.js网站上的Linux二进制发行版不是使用构建说明中描述的过程构建的 - 如果是,则它们不会在RHEL 6上运行。 / p>
是否有关于如何构建Node.js的二进制分发的信息?我缺少配置脚本的一些选项吗?
(这个问题的原因是:我正在尝试构建一个Node C ++插件,它需要针对RHEL 6,并且针对构建它所需的gcc版本遇到同样的问题RHEL 6上的GCC / C ++运行时。是的,我可以使用我的应用程序分发运行时库,但显然有更好的解决方案,因为Node的二进制分发正在使用它)。