centos7.5安装Node.js 20.5.1后报段错误(吐核)

centos7.5安装Node.js 20.5.1后报段错误

缘起

开发要求安装Node.js 20.5.1以解决dependencyCheck扫描出来的各种安全问题。

安装过程

1、 下载安装Node.js 20.5.1

wget https://nodejs.org/download/release/v20.5.1/node-v20.5.1-linux-x64.tar.gz

tar -xzf node-v20.5.1-linux-x64.tar.gz

chmod -R jenkins:jenkins node-v20.5.1-linux-x64

export PATH=/opt/node-v20.5.1-linux-x64/bin:$PATH


2、 执行node --version查看版本,报错如下:

/lib64/libm.so.6: version GLIBC_2.27' not found (required by node) node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20’ not found (required by node)
node: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by node) node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21’ not found (required by node)
node: /lib64/libc.so.6: version GLIBC_2.28' not found (required by node) node: /lib64/libc.so.6: version GLIBC_2.25’ not found (required by node)
node: /lib64/libm.so.6: version GLIBC_2.27' not found (required by node) node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20’ not found (required by node)
node: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by node) node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21’ not found (required by node)
node: /lib64/libc.so.6: version GLIBC_2.28' not found (required by node) node: /lib64/libc.so.6: version GLIBC_2.25’ not found (required by node)
node: /lib64/libm.so.6: version GLIBC_2.27' not found (required by node) node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20’ not found (required by node)
node: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by node) node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21’ not found (required by node)
node: /lib64/libc.so.6: version GLIBC_2.28' not found (required by node) node: /lib64/libc.so.6: version GLIBC_2.25’ not found (required by node)

查询资料,出现这些错误的原因是你的系统上缺少 Node.js 20.5.3 版本所需的依赖库版本。特别是 GLIBC 和 libstdc++ 版本太低。这通常发生在较旧版本的 Linux 系统上,例如 CentOS 7 或 RHEL 7。

方法一:升级操作系统
考虑升级你的操作系统到一个较新的版本,如 CentOS 8 或 RHEL 8,这些版本自带较新的库。

方法二:安装所需的库
如果你无法升级操作系统,可以尝试手动安装所需的库版本。请注意,这可能比较复杂,并且可能需要构建这些库。

3、按照方案二进行

更新 GLIBC
下载 GLIBC 源代码:

wget http://ftp.gnu.org/gnu/libc/glibc-2.28.tar.gz

解压和编译 GLIBC:

tar -xzf glibc-2.28.tar.gz
cd glibc-2.28
mkdir build
cd build
../configure --prefix=/opt/glibc-2.28 --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-werror
make -j4
sudo make install

但是执行…/configure --prefix=/opt/glibc-2.28的时候,会由于centos7.5自带的gcc4.7.5版本低,而报错。 需要升级gcc。
安装devtoolset-9

sudo yum install centos-release-scl
sudo yum install devtoolset-9

启用devtoolset-9

scl enable devtoolset-9 bash

再次执行:

../configure --prefix=/opt/glibc-2.28 --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-werror

make -j4
sudo make install

4. 将编译后的/opt/glibc-2.28导入系统配置

export LD_LIBRARY_PATH=/opt/glibc-2.28/lib:$LD_LIBRARY_PATH

如果你只是在当前shell终端导入这个环境变量,你只是崩溃了当前终端;

如果你将这个语句写入/etc/profile,你将突然面临一次系统崩溃;

导入这个环境变量后,你成功的把系统弄崩溃了!!!! 你执行命令会看到:段错误(吐核).
在这里插入图片描述
除了pwd以外,其他命令都不再好用!

如果你没有开多个终端,而你又修改了/etc/profile,你此时可能是慌张的,崩溃的!

但是天无绝人之路,你还可以sfp到系统,还可以将/etc/profile下载下来再修改,然后再回传覆盖。

你是多么机智!

回过神来,你去检查资料,发现:

这个问题可能是由于在执行ls 命令时,系统尝试加载了新编译的 glibc 库,但是该库与系统原有的库存在兼容性问题,导致发生了段错误。

网上没人告诉你,他们说的centos7安装Node.js 20.xx.xx版本,他们系统可能是7.9的,而不是7.5.

5. CentOS 7.5无法直接安装Node.js 20.5.1版本

主要原因是Node.js 20及更高版本需要glibc 2.28或更高版本,而CentOS 7.5默认安装的是glibc 2.17版本。

由于这是个生产系统,jenkins还在时时刻刻被公司成员运行着,只能回头找个虚拟系统再试试了。

对于开发的需求,沟通后发现,只需要npm 8 以上就可以满足需求,安装了node 16.20.2后,需求即可满足。

记之。

相关推荐

  1. CentOS安装NodeJs

    2024-06-13 20:38:03       6 阅读
  2. 安装nodejs2011并配置npm仓库

    2024-06-13 20:38:03       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-13 20:38:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-13 20:38:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-13 20:38:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-13 20:38:03       20 阅读

热门阅读

  1. 华为数通——奇偶数子网划分与流量控制(QoS)

    2024-06-13 20:38:03       8 阅读
  2. 中介子方程十四

    2024-06-13 20:38:03       5 阅读
  3. 仲恺ZK——信计专业《软件体系结构》复习总结

    2024-06-13 20:38:03       7 阅读
  4. Web前端知道:深入探索与无尽挑战

    2024-06-13 20:38:03       7 阅读
  5. TCP协议

    TCP协议

    2024-06-13 20:38:03      10 阅读
  6. 科技发展对社会就业结构的影响与挑战

    2024-06-13 20:38:03       6 阅读
  7. C语言练习题04

    2024-06-13 20:38:03       5 阅读
  8. 【RAG入门教程04】Langchian的文档切分

    2024-06-13 20:38:03       7 阅读