由于开发环境的需要,需要在centOS系统上安装node,所以就开始了一顿操作,但是,在安装node的过程中报了个错:

nvm install node

centos在线升级ssl centos升级libstdc_libstdc++


于是在网上需求解决方案,找到如下解决方法:

首先执行如下命令查看系统中找到的最新的GLIBC版本:

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

centos在线升级ssl centos升级libstdc_新版本_02


然后执行如下命令查看系统中最新版本的GLIBC库:

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

centos在线升级ssl centos升级libstdc_新版本_03


我们发现6.0.25是当前系统中存在的最新版本GLIBC库,我们要让系统的GLIBC库指向这个最新的库,做如下操作即可:

cp /root/miniconda3/lib/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

centos在线升级ssl centos升级libstdc_centos在线升级ssl_04


最后我们再查看一下当前系统能找到的GLIBC库的版本都有哪些:

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

接下来我们继续安装node:

nvm install node

结果还是报错:

centos在线升级ssl centos升级libstdc_centos在线升级ssl_05


这次我们发现缺少库的目录是/lib64。

继续在网上寻找解决方案,最后找到一个可靠的解决方案如下:

首先给大家介绍一下glibc以及我们直接操作它的后果:

glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。  
glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。  
很多linux的基本命令,比如cp, rm, ll,ln等,都得依赖于它,如果操作错误或者升级失败会导致系统命令不能使用,  
严重的造成系统退出后无法重新进入,所以操作时候需要慎重!!!

好了,那么知道后果之后,大家就不要轻举妄动了,跟着我的脚步一步一步来保你万事大吉,因为本人试验多次,上述雷区也踩过,不过不要紧,如果你在操作过程中不幸发生了上述问题,请看我的这篇文章《由于某种原因升级了centOS系统的glibc库导致了系统linux命令大部分不可使用!》,包您满意!

废话少说,我们直接来操作:

  • 首先我们安装必要的库:
yum install -y gcc
  • 然后查看现有GLIBC的最新版本:
ldd --version  
  
  # 显示如下:  
  ldd (GNU libc) 2.12
  Copyright (C) 2010 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  Written by Roland McGrath and Ulrich Drepper.
  • 查看系统现有包中能安装的GLIBC版本:
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  

  # 可见,CentOS6能够支持的最高版本也就是2.12了,所以我们必须要去官网下载2.17的版本手动进行安装。
  • 下载并安装GLIBC-2.17(下列命令请逐条执行!顺序不可打乱!!!):
wget https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
  tar –zxvf 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 –j4
  make install
  • 源码编译安装(make install)结束后如果出现如下这句话,则代表你安装成功:
  • centos在线升级ssl centos升级libstdc_bc_06

  • 查看安装完成后的GLIBC版本:
ldd --version  
  
  # 结果显示如下:  
  ldd (GNU libc) 2.17
  Copyright (C) 2012 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  Written by Roland McGrath and Ulrich Drepper.
  • 至此,GLIBC库安全升级成功,我们再来重新安装node:
nvm install node  
  
  # 结果显示如下:  
  v12.0.0 is already installed.
  Now using node v12.0.0 (npm v6.9.0)
  • 接下来我们就能使用node去干很多事情了。
node -v  
  
  # 显示结果如下:  
  v12.0.0

总结

当然了,各位小伙伴如果遇到了其它版本的GLIBC库NOT FOUND的情况,可以使用类似的方法去解决,本文仅以2.17版本为例,供大家参考!!!