安装node 报错需要:glibc >= 2.28

--> 解决依赖关系完成

错误:软件包:2:nodejs-18.20.4-1nodesource.x86_64 (nodesource-nodejs)

需要:libm.so.6(GLIBC_2.27)(64bit)

错误:软件包:2:nodejs-18.20.4-1nodesource.x86_64 (nodesource-nodejs)

需要:libstdc++.so.6(GLIBCXX_3.4.21)(64bit)

错误:软件包:2:nodejs-18.20.4-1nodesource.x86_64 (nodesource-nodejs)

需要:glibc >= 2.28

已安装: glibc-2.17-317.el7.x86_64 (@anaconda)

glibc = 2.17-317.el7

可用: glibc-2.17-322.el7_9.i686 (updates)

glibc = 2.17-322.el7_9

可用: glibc-2.17-323.el7_9.i686 (updates)

glibc = 2.17-323.el7_9

可用: glibc-2.17-324.el7_9.i686 (updates)

glibc = 2.17-324.el7_9

可用: glibc-2.17-325.el7_9.i686 (updates)

glibc = 2.17-325.el7_9

可用: glibc-2.17-326.el7_9.i686 (updates)

glibc = 2.17-326.el7_9

可用: glibc-2.17-326.el7_9.3.i686 (updates)

glibc = 2.17-326.el7_9.3

错误:软件包:2:nodejs-18.20.4-1nodesource.x86_64 (nodesource-nodejs)

需要:libstdc++.so.6(GLIBCXX_3.4.20)(64bit)

错误:软件包:2:nodejs-18.20.4-1nodesource.x86_64 (nodesource-nodejs)

需要:libc.so.6(GLIBC_2.28)(64bit)

错误:软件包:2:nodejs-18.20.4-1nodesource.x86_64 (nodesource-nodejs)

需要:libstdc++.so.6(CXXABI_1.3.9)(64bit)

您可以尝试添加 --skip-broken 选项来解决该问题

您可以尝试执行:rpm -Va --nofiles --nodigest

解决办法:

centos在2024年6月30日停止维护,因此yum的默认镜像地址http://mirrorlist.centos.org也无法访问了。需要更正yum源配置,如下是步骤

1 更正.repo文件里的mirrors信息,然后安装centos-release-scl和centos-release-scl-rh,以使得devtoolset*系列的包可用

在/etc/yum.repos.d目录下执行如下命令:

sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo

sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo

sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo

sudo yum clean all

sudo yum makecache

2 安装gcc8

sudo yum install devtoolset-8

3 进入devtoolset-8环境

source /opt/rh/devtoolset-8/enable,并将其加入到~/.bashrc中

复制代码
# 升级GCC(默认为4 升级为8)
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc*
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++

# 升级 make(默认为3 升级为4)
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz
tar -xzvf make-4.3.tar.gz && cd make-4.3/
./configure  --prefix=/usr/local/make
make && make install
cd /usr/bin/ && mv make make.bak
ln -sv /usr/local/make/bin/make /usr/bin/make

报错

复制代码
/usr/bin/ld: cannot find -lnss_test2
collect2: error: ld returned 1 exit status
Execution of gcc -B/usr/bin/ failed!
The script has found some problems with your installation!
Please read the FAQ and the README file and check the following:
- Did you change the gcc specs file (necessary after upgrading from
  Linux libc5)?
- Are there any symbolic links of the form libXXX.so to old libraries?
  Links like libm.so -> libm.so.5 (where libm.so.5 is an old library) are wrong,
  libm.so should point to the newly installed glibc file - and there should be
  only one such link (check e.g. /lib and /usr/lib)
You should restart this script from your build directory after you've
fixed all problems!
Btw. the script doesn't work if you're installing GNU libc not as your
primary library!
make[1]: *** [Makefile:111: install] Error 1
make[1]: Leaving directory '/dat/glibc/glibc-2.28'
make: *** [Makefile:12:install] 错误 2


网上说此错误可以无视

验证
ls -l /lib64/libc.so.6

升级glibc

复制代码
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar xf glibc-2.28.tar.gz 
cd glibc-2.28/ && mkdir build  && cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install

安装过程挺长的 , 出现上面的错误无视

参考: https://www.cnblogs.com/dingshaohua/p/17103654.html

使用nodejs报错

复制代码
./node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' 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 `GLIBCXX_3.4.21' not found (required by ./node)

通过命令检查

strings /usr/lib64/libstdc++.so.6 | grep CXXABI

发现最高版本只有 1.3.7

解决办法

复制代码
1.  执行以下命令,查找编译gcc时生成的最新动态库:

find / -name "libstdc++.so.*"

2. 将上面的最新目录复制到/usr/lib64/目录下:

cp /dat/docker/overlay2/91d0f194e44dada6347afd7ab214a5eb3f758d94c227ae66cc9ec3399bd3a9f8/merged/usr/lib/libstdc++.so.6.0.22 /usr/lib64/
尝试了, 22,30版本都不对, 从别的系统拷贝了 29版本过来,就可以了


3. 将libstdc++.so.6连接到libstdc++.so.6.0.29上去:

cd /usr/lib64 
rm -rf libstdc++.so.6 
ln -s libstdc++.so.6.0.29 libstdc++.so.6

4.默认动态库升级完成。重新运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI'

node18 记得要用22, 不然用30会报错

接着报错

/usr/local/node/node-v18.20.4-linux-x64/bin/node: error while loading shared libraries: libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory

然后查询出来拷贝一下

复制代码
find / -name "libc.musl-x86_64.so.1"
cp /dat/docker/overlay2/91d0f194e44dada6347afd7ab214a5eb3f758d94c227ae66cc9ec3399bd3a9f8/merged/lib/libc.musl-x86_64.so.1 /usr/lib64

然后接着报错

/lib64/libstdc++.so.6: no version information available

相关推荐
一 乐9 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
C_心欲无痕9 小时前
ts - tsconfig.json配置讲解
linux·前端·ubuntu·typescript·json
清沫9 小时前
Claude Skills:Agent 能力扩展的新范式
前端·ai编程
冰西瓜60010 小时前
国科大2025操作系统高级教程期末回忆版
linux
yinuo10 小时前
前端跨页面通信终极指南:方案拆解、对比分析
前端
yinuo10 小时前
前端跨页面通讯终极指南⑨:IndexedDB 用法全解析
前端
HIT_Weston10 小时前
93、【Ubuntu】【Hugo】搭建私人博客:面包屑(一)
linux·运维·ubuntu
cuijiecheng201811 小时前
Linux下Beyond Compare过期
linux·运维·服务器
xkxnq11 小时前
第二阶段:Vue 组件化开发(第 16天)
前端·javascript·vue.js
烛阴11 小时前
拒绝配置地狱!5 分钟搭建 Three.js + Parcel 完美开发环境
前端·webgl·three.js