如何安全的升级centos系统上的glibc库

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

nvm install node

111
于是在网上需求解决方案,找到如下解决方法:
首先执行如下命令查看系统中找到的最新的GLIBC版本:

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

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

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

333
我们发现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

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

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

接下来我们继续安装node:

nvm install node  

结果还是报错:
555
这次我们发现缺少库的目录是/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)结束后如果出现如下这句话,则代表你安装成功:
    666

  • 查看安装完成后的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版本为例,供大家参考!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值