zoukankan      html  css  js  c++  java
  • 关于升级Glibc时取消了libc.so.6软链接的怎么挽救的问题

            拷贝/lib64/libc-2.12.so和/lib64/libc.so.6文件
    
        cp /lib64/libc-2.12.so /mnt/sysimage/lib64/libc-2.12.so
    
        cp /lib64/libc.so.6 /mnt/sysimage/lib64/libc.so.6
    
        注:如果拷贝失败:用强制拷贝cp -rf 命令            
    

    事情是这样的。。。。

    *问题起源

    我本来想在centos6.5中安装IntelliJ Idea来配置编写spark程序的,但是Idea.sh想启动的时候出现了一下错误

    [hadoop@hadoop001 bin]$ ./idea.sh
    /opt/idea/jbr/bin/java: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/idea/jbr/bin/../lib/jli/libjli.so)
    

     查看已有的GLIBC发现确实缺少上述版的,最高只支持GLIBC_2.12

    [hadoop@hadoop001 bin]$ 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
    

     所以说我的GLIBC_2.12需要升级成_2.14才行

    *我以为找到完整的解决方案了

     网上清一色的如何 解决"libc.so.6: version 'GLIBC_2.14' not found"问题,而且方法基本一致,即:

    1.从http://ftp.gnu.org/gnu/glibc/中下载glibc-2.14.tar.xz解压到某路径下
    2.进入解压后的glibc-2.14文件夹下,mkdir build创建一个文件夹build,并进入该文件夹下
    3.../configure --prefix=/usr/local/glibc-2.14
    4.make -j4
    5.make install
    6.修改临时变量
      export LD_LIBRARY_PATH=/usr/local/glibc-2.14/lib
    并source使其生效(决不能写在/etc/profile文件里,否则会导致某些shell命令执行不了

     即类似这样

    网络上很多方法基本就是以上这样,就叫你重新idea.sh即可了

    但是仅仅这样并不能成功,你再次查看GLIBC最高版也还只是glibc-2.12

    所以我想肯定是少了哪些步骤,然后我就看到了这篇

    升级glic: 解决"libc.so.6: version 'GLIBC_2.14' not found"问题 https://www.cnblogs.com/kevingrace/p/8744417.html

    里面有这样一部分内容如下:

    修改/lib64/libc.so.6的软链接来源,由之前的libc-2.12.so修改为libc-2.14.so
    [root@uatblockchain01 build]# cd /lib64
    [root@uatblockchain01 lib64]# ll libc.so.6
    lrwxrwxrwx 1 root root 12 Apr  8 03:50 libc.so.6 -> libc-2.12.so
             
    [root@uatblockchain01 lib64]# ll /usr/local/glibc-2.14/lib/libc-2.14.so
    -rwxr-xr-x 1 root root 9645192 Apr  8 03:28 /usr/local/glibc-2.14/lib/libc-2.14.so
    [root@uatblockchain01 lib64]# cp /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/
             
    删除libc-2.12.so之前的软链接
    [root@uatblockchain01 lib64]# unlink /lib64/libc.so.6
    或者直接执行
    [root@uatblockchain01 lib64]# rm -f /lib64/libc.so.6
    

     看到他这里我突然意识到自己该怎么做了,于是依葫芦画瓢执行了其指令

    但是标红部分开始让我不知所措了,我取消了libc.so.6软链接,果然出现了后面警示的情况

     

     *步入正题

    其实人家也说了解决方法,但是由于我是普通用户登录的,即使在当前终端并未关闭的情况下,急救方法也没用。于是我放弃了这类方法,关闭了我的centos6.5客户机。

    所以我现在想总结一下,当取消了glibc的软链接libc.so.6该如何挽救?

    情况一:未关闭当前终端且当前用户为root用户

    (这类搜error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory能找到答案

    情况二:未关闭当前终端但当前用户为普通用户/关闭了当前终端重启客户机

    我主要说我自己实践成功的情况二,由于我是普通用户无法适用情况一的方法,于是我关闭了客户机

    这篇经验贴给了我一些帮助: https://www.cnblogs.com/yizhipanghu/p/10254186.html

    进入救援模式Rescue install system可以参考https://zhidao.baidu.com/question/332470303737144965.html
    首先我这是VMware虚拟机

    由于我很早之前下载的镜像文件还好好地在电脑里,很顺利,这样设置后重启客户机,开机时点击鼠标左键,然后快速按下一次ESC键,后面选择

    'CD-ROM Drive'回车,选择Rescue install system

    重要的是最后进入shell界面处要拷贝/lib64/libc-2.12.so和/lib64/libc.so.6文件

        cp /lib64/libc-2.12.so /mnt/sysimage/lib64/libc-2.12.so

        cp /lib64/libc.so.6 /mnt/sysimage/lib64/libc.so.6

        注:如果拷贝失败:用强制拷贝cp -rf 命令

    执行: chroot /mnt/sysinage  不会报错,证明已经修复

         重新启动虚拟机,启动成功


    总之:我正确升级Glibc步骤

    cd  /opt/idea
    
    tar -zxvf  glibc-2.14.tar.gz
    
    cd /glibc-2.14
    
    mkdir build
    
    cd build
    
    ../configure --prefix=/opt/glibc-2.14
    
    make -j4
    
    (find / -name "ld.so.conf"
    cp /etc/ld.so.conf /opt/glibc-2.14/etc/)
    
    make install
    
    export LD_LIBRARY_PATH=/opt/glibc-2.14/lib
    
    (echo $LD_LIBRARY_PATH)
    
    cd /lib64
    
    (ll libc.so.6
    
    ll /opt/glibc-2.14/lib/libc-2.14.so)
    
    cp /opt/glibc-2.14/lib/libc-2.14.so /lib64/
    
    unlink /lib64/libc.so.6(或rm -f /lib64/libc.so.6)
    
    ldconfig
    
    ln -s libc-2.14.so /lib64/libc.so.6
    
    (ll libc.so.6
    
    strings /lib64/libc.so.6 |grep GLIBC_)
    

  • 相关阅读:
    文本建模、文本分类相关开源项目推荐(Pytorch实现)
    自然语言推断(NLI)、文本相似度相关开源项目推荐(Pytorch 实现)
    20155312 张竞予 Exp9 Web安全基础
    20155312 张竞予 Exp 8 Web基础
    20155312 张竞予 Exp7 网络欺诈防范
    20155312 张竞予 Exp6 信息搜集与漏洞扫描
    20155312 张竞予 Exp5 MSF基础应用
    20155312 张竞予 Exp4 恶意代码分析
    20155312 张竞予 Exp3 免杀原理与实践
    20155312 张竞予 Exp2 后门原理与实践
  • 原文地址:https://www.cnblogs.com/y-c-m520/p/13824636.html
Copyright © 2011-2022 走看看