1. 安装编译环境devtoolset-8
2. 编译安装glibc-2.28
3. 编译安装gcc高版本并配置LD_LIBRARY_PATH
参考链接:
https://github.com/nodejs/build/issues/2815 https://cloud.tencent.com/developer/article/2021784
1、安装编译环境devtoolset-8
sudo yum install centos-release-scl
sudo yum install devtoolset-8
scl enable devtoolset-8 bash
gcc --version
wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz --no-check-certificate
tar -xzvf 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 --enable-obsolete-nsl
configure 增加 --enable-obsolete-nsl ,解决编译错误 undefined reference to '_nsl_default_nss@GLIBC_PRIVATE' 。
修改 scripts/test-installation.pl 128行,增加 && $name ne "nss_test2" ,解决编译错误 nss_test2报错。
126 if ($name ne "nss_ldap" && $name ne "db1"
127 && $name ne "thread_db"
128 && $name ne "nss_test2"
129 && $name ne "nss_test1" && $name ne "libgcc_s") {
130 $link_libs .= " -l$name";
131 $versions{$name} = $version;
132 }
参考链接:https://garlicspace.com/2020/07/18/centos7-%e5%8d%87%e7%ba%a7-glibc-gcc/
执行编译安装:
make -j4
make install
查看glibc支持的版本:
strings /lib64/libc.so.6 | grep GLIBC
参考链接:https://stackoverflow.com/questions/46172600/rhel7-usr-lib64-libstdc-so-6-version-cxxabi-1-3-8- not-found
sudo yum install gmp-devel mpfr-devel libmpc-devel
wget https://ftp.gnu.org/gnu/gcc/gcc-8.5.0/gcc-8.5.0.tar.gz --no-check-certificate
tar -xvf gcc-8.5.0.tar.gz
cd gcc-8.5.0
mkdir build
cd build
../configure--disable-multilib--enable-languages=c,c++--prefix=$HOME/local
make -j8
make install
在 ~/.bashrc 中增加语句:
export LD_LIBRARY_PATH=$HOME/local/lib64
4、二进制包安装NodeJS18
参考官方安装方式,安装node-v18.15.0-linux-arm64。https://github.com/nodejs/help/wiki/Installation
wget https://nodejs.org/dist/v18.15.0/node-v18.15.0-linux-arm64.tar.xz
sudo mkdir -p /usr/local/lib/nodejs
sudo tar -xJvf node-v18.15.0-linux-arm64.tar.xz -C /usr/local/lib/nodejs
在 ~/.bashrc 中增加语句:
# Nodejs NODEJS_VERSION=v18.15.0NODEJS_DISTRO=linux-arm64 export PATH=/usr/local/lib/nodejs/node-$NODEJS_VERSION-$NODEJS_DISTRO/bin:$PATH
测试:
node -v npm version npx -v
总结:以上技巧到具体环境中要根据实际环境进行具体分析调整,不可一概而论。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!