centos升级GLIBC和GLIBCXX 背景介绍 在centos6的机器上安装最新版本的nodejs,安装完成后运行node -v
,显示
1 2 3 4 5 6 7 8 $ node -v node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by node)node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by node) node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by node)node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by node) node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by node)node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by node)
执行过程 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 $ strings /lib64/libc.so.6 |grep GLIBC_ GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12 GLIBC_PRIVATE $ strings /usr/lib64/libstdc++.so.6 | grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.4 GLIBC_2.3.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 $ wget --no-check-certificate https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz $ tar -xzvf glibc-2.17.tar.gz $ cd glibc-2.17 $ mkdir build $ cd build $ ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin $ make && make install $ node -v node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by node) node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by node)node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by node) node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by node)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 $ strings /lib64/libc.so.6 |grep GLIBC_ GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12 + GLIBC_2.13 + GLIBC_2.14 + GLIBC_2.15 + GLIBC_2.16 + GLIBC_2.17 GLIBC_PRIVATE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 $ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-8.3.0/gcc-8.3.0.tar.gz $ tar -xzvf gcc-8.3.0.tar.gz $ cd gcc-8.3.0 $ ./contrib/download_prerequisites 2022-05-10 14:50:35 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840] -> "./gmp-6.1.0.tar.bz2" [1] 2022-05-10 14:52:03 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284] -> "./mpfr-3.1.4.tar.bz2" [1] 2022-05-10 14:52:54 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925] -> "./mpc-1.0.3.tar.gz" [1] 2022-05-10 14:55:05 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291] -> "./isl-0.18.tar.bz2" [1] gmp-6.1.0.tar.bz2: 确定 mpfr-3.1.4.tar.bz2: 确定 mpc-1.0.3.tar.gz: 确定 isl-0.18.tar.bz2: 确定 All prerequisites downloaded successfully. $ mkdir build $ cd build $ ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib $ make && make install $ cp /usr/local/lib64/libstdc++.so.6.0.25 /usr/lib64 $ cd /usr/lib64 $ rm -rf libstdc++.so.6 $ ln -s libstdc++.so.6.0.25 libstdc++.so.6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 $ strings /usr/lib64/libstdc++.so.6 | grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 + GLIBCXX_3.4.14 + GLIBCXX_3.4.15 + GLIBCXX_3.4.16 + GLIBCXX_3.4.17 + GLIBCXX_3.4.18 + GLIBCXX_3.4.19 + GLIBCXX_3.4.20 + GLIBCXX_3.4.21 + GLIBCXX_3.4.22 + GLIBCXX_3.4.23 + GLIBCXX_3.4.24 + GLIBCXX_3.4.25 + GLIBC_2.2.5 + GLIBC_2.3 + GLIBC_2.14 + GLIBC_2.18 GLIBC_2.16 GLIBC_2.17 GLIBC_2.3.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH