服务器运行 node 18 以上版本 version `GLIBC_xxx' not found 的解决方案

790 阅读1分钟

快速记录一下这个问题的解决方式,废话少说了

原因

服务器系统自带的 glibc 库 版本太低导致,比如经典 CentOS7

解决方案

1、升级库,升级系统

这属于比较理想的解决方案,网上的教程大多是这方面的,就不多赘述了 掘金我随便搜了一篇:juejin.cn/post/733661…

2、使用不需要 glibc 库的 node sdk、

场景

常见情况是服务器上有一堆乱七八糟的东西,不好升级库,也不好升级系统

思路

我也是偶然间翻到了这个 github 上的 讨论:

# Node.js is showing error "node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)" #52241

其中提到了这个项目【nodejs 非官方构建】:

github.com/nodejs/unof…

其中就有【自带 glibc 的 node】,这就是我们要的东西

image.png

靠谱吗?

这个项目也是 nodejs 官方的项目,只是收录了一些非官方的 node 打包版本

我理解一定程度是可用的,只是如果出了问题 nodejs 官方不背锅而已

如何操作

操作也很简单,在这个网站中下载对应版本的【自带 glibc 的 node】,替换掉服务器上的 node 就好了

unofficial-builds.nodejs.org/download/re…

比如下图是 node v20.19.1 里,下载对应的包

(这两一样,都是压缩包,取决于服务器上有哪个解压程序)

image.png

我这里用的是 nvm ,替换 nvm 里的 node 即可(其他 node 管理工具,也类似)

image.png

然后就可以正常的使用了~