操作步骤
先下载 ==Node.js== 源码
-
命令:
mkdir /usr/local/nodejs cd /usr/local/nodejs wget https://npm.taobao.org/mirrors/node/v12.9.1/node-v12.9.1.tar.gz
进入到下载的目录进行操作
-
命令:
ll tar -zxvf node-v12.9.1 cd node-v12.9.1 ./configure make && make install
可能出现的问题
-
问题一:
<font color=red>
WARNING: C++ compiler too old, need g++ 4.9.4 or clang++ 3.4.2 (CXX=g++)
</font>出现原因:==gcc== 版本过低,这是因为如果使用
yum install gcc gcc-c++
的时候他安装的都是低版本的 4.8.0-
解决方法:安装较高版本的 ==gcc== (同样为源码编译安装)
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-9.2.0/gcc-9.2.0.tar.gz tar -zxvf gcc-9.2.0.tar.gz cd gcc-9.2.0 # --diable-multiblib 的意思是安装 64 位版本的,安装 32 位的会出错 ./configure --disable-multilib make && make install
-
-
问题二:
<font color=red>
Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
</font>出现原因:编译安装 ==gcc== 需要依赖:==GMP== ,==MPFR==,==MPC==
注意:==MPFR== 依赖 ==GMP==,而 ==MPC== 依赖 ==GMP== 和 ==MPFR==; 所以需要先安装 ==GMP==,其次 ==MPFR==,最后才是 ==MPC==
-
解决方法(安装以上依赖,同样为源码安装):
# 安装 bzip2 yum install -y bzip2 # 安装 GMP wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 tar -jxvf gmp-6.1.0.tar.bz2 cd gmp-6.1.0 ./configure make && make install # 安装 MPFR wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 tar -jxvf mpfr-3.1.4.tar.bz2 cd gmpfr-3.1.4 ./configure make && make install #安装 MPC wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz tar -jxvf mpc-1.0.3.tar.gz cd mpc-1.0.3 ./configure make && make install
-
-
问题三:
<font color=red>
/usr/lib64/libstdc++.so.6: version ‘CXXABI_1.3.9’ not found
</font>出现原因:升级 ==gcc== 后找不到动态库
-
解决方法:
# 进入 gcc 下载的目录 cd gcc-9.2.0 # 查找 libstdc++.so.6,使用 stage 版本的 find . -name "libstdc++.so.6.*" ./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.27 ./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.27 ./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.27 # 移除旧的 libstdc++.so.6 的软连接 rm -f /lib64/libstdc++.so.6 # 创建新的 libstdc++.so.6 的软连接 ln -s ./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.27 /lib64/libstdc++.so.6
查看动态库版本:
strings /lib64/libstdc++.so.6 | grep CXXABI # 列表中有1.3.9即可 CXXABI_1.3 CXXABI_1.3.1 CXXABI_1.3.2 CXXABI_1.3.3 CXXABI_1.3.4 CXXABI_1.3.5 CXXABI_1.3.6 CXXABI_1.3.7 CXXABI_1.3.8 CXXABI_1.3.9 CXXABI_1.3.10 CXXABI_1.3.11 CXXABI_TM_1 CXXABI_FLOAT128
-
网友评论