Ubuntu安装glibc

【摘 要】 本文讲述的是Ubuntu18.04上面升级glibc到2.29版本的辛酸而又励志故事。在查遍了百度,google,必应等,只有一位同学遇到了和我一样的问题,且他没有解决这个问题。为了记录我的英勇历史,写下这篇日记。

一、介绍

1.1 环境说明

  • 系统:ubuntu18.04

1.2 问题介绍

安装完mmdetection后运行,报以下错误:

1
/lib/x86_64-linux-gnu/libm.s0.6: version 'GLIBC_2.29' not found

经过查找,发现是因为glibc版本不对,需要升级到2.29版本。

辛酸的故事从这里开始

二、解决过程

apt是安装不了的,不要想了。

2.1 下载glibc_2.29源码

下载链接

解压到任意目录。

2.2 踩坑记录

  • 第一个坑:不能再当前目录下直接configure,要重新建一个空文件夹,然后cd进去,在里面进行编译。(官方的解释是:这样如果出错,可以把这个文件夹下的内容删掉,比较方便。。。。官方脑子一定是进水了)

    1
    2
    3
    4
    # 进入解压的文件夹后
    mkdir build
    cd build
    ../configure prefix=/opy/glibc

    这一步可能出错,提示缺少几个包,有人是一个,有人是几个,这些包可以用apt-get install的方法直接安装。

  • 第二个坑:这是个深坑,官方的文件里面没有manual文件夹,而在编译的时候,但是却需要这个文件夹里面的文件,具体报错过程如下:

    1
    make -j8

    注:-j8的意思是,8线程同时编译。

    报错如下:

    1
    2
    3
    4
    5
    6
    7
    The compilation fails with the following error:
    make[2]: *** No rule to make target `../manual/errno.texi', needed by `../sysdeps/gnu/errlist.c'. Stop.
    make[2]: *** Waiting for unfinished jobs....
    make[2]: Leaving directory `/home/bibop554/compile_libc/eglibc-2.11.3/stdio-common'
    make[1]: *** [stdio-common/subdir_lib] Error 2
    make[1]: Leaving directory `/home/bibop554/compile_libc/eglibc-2.11.3'
    make: *** [all] Error 2

    既然看出来少了manual文件夹,就去找。。还真的找到了,附上github下载地址。这个里面有个manual文件夹,复制这个文件夹到你下载解压的glibc2.29中,make成功

  • 第三步:安装

    1
    make install

    只要第二步成功了,这步我没有碰到问题。

  • 第四步:设置软连接

    1
    sudo ln -sf /opt/glibc/lib/libm.so.6 /lib/x86_64-linux-gnu/libm.so.6

    我这里需要的是libm,所以只设置了一个软连接。里面还有libc等等

代码至此成功运行,glibc采坑结束。

三、总结

安装完后口吐芬芳:glibc官方垃圾

-------------本文结束感谢您的阅读-------------
0%