Ubuntu 18.04 出现GLIBC

2024-02-27 1657阅读

关于/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28’ not found`出现报错,建议不要使用源码包去编译并升级。在下文有分享一个使用官方的Debian软件包去升级使用的方法。仅供参考!

环境
# uname -a
Linux Ubuntu 5.4.0-144-generic #161~18.04.1-Ubuntu SMP Fri Feb 10 15:55:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
分析原因

glibc是linux底层的API库。通常情况下,有些环境需要glibc更高的版本才支持,比如GLIBC_2.28。

另外对它操作升级,可能有导致系统崩溃的风险。

经验与教训

使用GLIBC_xxx的源码包编译升级的惨案:

  • 提醒:在其他博客教程上,有些网友(我也不另外,后面可拯救回来)就按照教程并使用GLIBC_xxx的源码包并去升级,结果往往是系统崩溃而告终。

  • glibc库对linux系统非常重要,轻易不要更换。如果需要更换,需提前备份好原本的相关库以防万一。

  • 若在使用源码包去升级之后出现segmentation fault,命令无法使用的情况。

  • 解决方法:

    若安装失败,可能导致各指令出错,除了cd、pwd基本都不可使用,这时候千万不要关闭窗口(如果关闭将导致将无法打开,只能重装系统),比如安装libc-2.28.so出错了,需拯救系统。可尝试输入其中一条

    export LD_PRELOAD=/lib64/librt-2.XX.so
    export LD_PRELOAD=/lib64/libm-2.XX.so
    export LD_PRELOAD=/lib64/libpthread-2.XX.so
    export LD_PRELOAD=/lib64/libc-2.XX.so
    export LD_PRELOAD=/lib/x86_64-linux-gnu/libc-2.XX.so
    

    (XX指原本的版本,看文件夹有哪个就试一下),然后ls这些指令就可以用了,再使用ln -s把以前的库链接回来。

    cd /lib/x86_64-linux-gnu
    ll     # 文件详细信息
    ln -sf libc-2.27.so libc.so.6   # libc-2.27.so是原有版本
    rm  libc-2.28.so     #删除
    
    软件包升级GLIBC_2.28

    1 查看服务器当前版本,命令如下:

    strings /lib/x86_64-linux-gnu/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_2.18
    GLIBC_2.22
    GLIBC_2.23
    GLIBC_2.24
    GLIBC_2.25
    GLIBC_2.26
    GLIBC_2.27
    GLIBC_PRIVATE
    

    说明服务器当前是没有GLIBC_2.28

    2 使用软件包升级方式

    • 参考debian网址并搜索想要的软件或者工具等,如libc6,有结果如下:

      Ubuntu 18.04 出现GLIBC 第1张

      具体就不介绍了,请浏览官网了解。

    • 添加软件源,/etc/apt/sources.list文件中像下面这样添加一行:

      deb http://security.debian.org/debian-security buster/updates main 
      
      • 系统可用的软件包更新,刷新软件包的缓存
        sudo apt update  # 更新软件源
        
        • apt-get update之后若出现下面提示:

          由于没有公钥,无法验证下列签名: NO_PUBKEY 112695A0E562B32A NO_PUBKEY 54404762BBB6E853

          sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A 54404762BBB6E853
          
          • 其中后面的112695A0E562B32A 54404762BBB6E853就是上面提到的NO_PUBKEY 112695A0E562B32A NO_PUBKEY 54404762BBB6E853中的公钥,替换成对应的即可。然后重新apt-get update即可。

          • 查看软件包可更新列表

            sudo apt list --upgradable   
            

            如下图所示:

            Ubuntu 18.04 出现GLIBC 第2张

            • 安装libc6
              sudo apt install libc6-dev  /sudo apt install libc6
              

              3 查看服务器当前版本:

              strings /lib/x86_64-linux-gnu/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_2.18
              GLIBC_2.22
              GLIBC_2.23
              GLIBC_2.24
              GLIBC_2.25
              GLIBC_2.26
              GLIBC_2.27
              GLIBC_2.28     # 多出该版本,说明安装成功,系统也能正常使用。
              GLIBC_PRIVATE
              

              如下图所示:

              Ubuntu 18.04 出现GLIBC 第3张


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]