• RedHat8升级GLIBC_2.29,解决ImportError: /lib64/libm.so.6: version `GLIBC_2.29


    问题背景

    在做大模型微调训练时,执行python脚本时出现如下报错:
    在这里插入图片描述
    查看当前服务器版本,确实没有GLIBC_2.29的

    strings /lib64/libm.so.6 | grep GLIBC_
    GLIBC_2.2.5
    GLIBC_2.4
    GLIBC_2.15
    GLIBC_2.18
    GLIBC_2.23
    GLIBC_2.24
    GLIBC_2.25
    GLIBC_2.26
    GLIBC_2.27
    GLIBC_2.28
    GLIBC_PRIVATE
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    解决方案

    在网上查了很多方法,都不太建议升级glibc版本,对系统影响比较大,而且升级起来很麻烦,很多底层的依赖也要跟着升级。
    目前已经在ubuntu系统上是没问题的,但又不想重装系统,所以还是选择了在系统本地升级glibc版本。

    具体方案如下:
    在本地将glibc-2.29进行编译,然后根据python脚本执行报错所给出的路径信息,将glibc-2.29编译后的libm-2.29.so与/lib64/下的libm.so.6重新做个软连接,其他底层的依赖版本不进行更改。

    其他报错也可以按照我这个方案进行软连接替换,提示什么就替换什么。
    ImportError: /lib64/XXXX: version `GLIBC_2.29

    下载GLIBC_2.29压缩包

    wget http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
    
    • 1

    解压进行编译

    tar -zxvf glibc-2.29.tar.gz
    cd glibc-2.29
    mkdir build
    cd build/
    ../configure --prefix=/usr/local --disable-sanity-checks
    #这里可能会报错,提示要升级gcc、bison、python、make版本等信息
    # These critical programs are missing or too old: make bison python
    # Check the INSTALL file for required versions.
    
    # 根据报错的信息,进行安装就可以了
    # 需要升级GCC的就升级GCC,需要升级make的就升级make,需要升级python的就升级python,我这里只需要升级make、bison、python即可
    yum install make bison python3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    安装

    make -j18
    make install
    # 安装完成后可以输入echo $?验证下有没有报错
    echo $? #如果返回的是0说明是安装成功的,非0说明安装失败
    
    • 1
    • 2
    • 3
    • 4

    建立软连接

    cd /lib64/
    mv ./libm.so.6 ./libm.so.6_bak
    ln -s /usr/local/lib/libm-2.29.so libm.so.6
    
    #因为编译的时候设置了--prefix=/usr/local,所以libm-2.29.so被安装在/usr/local/下
    
    • 1
    • 2
    • 3
    • 4
    • 5

    验证版本

    strings /lib64/libm.so.6 | grep GLIBC_
    # 就可以看到会出现GLIBC_2.29的版本
    
    • 1
    • 2

    可以现在测试环境中试一下,进行重启系统后,看看是否都正常,确认没问题了再上开发环境更改。

  • 相关阅读:
    一款自动生成CRUD代码的自定义Starter
    使用OpenVINO™在“端—边—云”快速实现高性能人工智能推理
    喜报 | 祝贺璞华科技通过CMMI Lv5 等级复审!
    详细介绍NLP文本分类
    Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完稳了
    mac安全干净卸载Anaconda3
    修改npm全局安装模式的路径
    C#中ThreadPool线程池的使用总结
    关于 UEditorPlus 和 TinyMCE 编辑器上线 HKCMS 插件市场的通知
    从OC角度思考OKR的底层逻辑
  • 原文地址:https://blog.csdn.net/qq_16942727/article/details/134021392