服务器到期后,需更换服务器。不过在新服务器上使用官方的安装方式进行安装时,发现报错。更换服务器重试,仍无法避免。其报错内容如下:
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)
最好的解决办法如下:
wget https://www.javaai.org/uploads/file/20240608/1717788726846005810.gz -O node-standalone-v22.2.0.tar.gz && tar -zxvf node-standalone-v22.2.0.tar.gz
node-standalone/patchelf-recurse/patchelf-repaire-ld-linux.sh node-standalone/node-v22.2.0-linux-x64/
# 获取当前工作目录
CURRENT_PATH=$(pwd)
# 构建要追加的路径
NODE_PATH="$CURRENT_PATH/node-standalone/node-v22.2.0-linux-x64/bin"
# 将路径追加到 /etc/profile
echo "export PATH=$NODE_PATH:\$PATH" | tee -a /etc/profile
# 使修改生效
source /etc/profile
node --version
npm --version
这个时候,你会发现其实已经安装成功了。
以上解决办法参考了:Node.js no GCC dependency version download solved
这种单独下载的包,从安全的角度来看,其实是有风险的。务必自行把控风险。
上面的错误,期初在解决centos安装pyppeteer的时候也遇到了。当时的处理方法如下:
strings /usr/lib64/libc.so.6 | grep GLIBC_2.1
这个命令将列出系统上可用的 glibc 版本。如果没有列出 GLIBC_2.18,那么您需要安装它。
wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxf glibc-2.18.tar.gz
cd glibc-2.18/
mkdir build
cd build/
../configure --prefix=/usr
make -j2
make install
如果安装成功,您现在应该可以在版本列表中看到 GLIBC_2.18。
请注意,如果不小心操作,手动安装更新版本的 glibc 可能会导致系统出现问题。建议在继续操作之前备份重要数据。此外,请考虑升级 glibc 对系统的影响,因为它是 Linux 操作系统的核心组件。
其他版本的安装包可在https://ftp.gnu.org/gnu/glibc/中进行查找。
不过上面这种方式,你会发现需要操作很多次,并且编译个别安装包的时候,会报各种错误。非常的繁琐,如果是一个错误,上面的这种方式还是可以的。