zoukankan      html  css  js  c++  java
  • Linux下安装glibc-2.14,解决“`GLIBC_2.14' not found”问题


     
    最近在使用rpm安装MySQL时,出现下面错误,为解决这个错误查询资料整理如下

        [root@localhost ~]# rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm --nodeps --force
        warning: mysql-community-server-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
        Preparing...                ########################################### [100%]
           1:mysql-community-server ########################################### [100%]
        /usr/bin/my_print_defaults: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/bin/my_print_defaults)

    第一步:下载glibc-2.14

    下载地址:http://ftp.gnu.org/gnu/glibc/

    第二步:安装glibc-2.14

    解压

    tar -xzvf glibc-2.14.tar.gz

    预编译

        cd glibc-2.14
        mkdir build #创建编译目录
        cd build
        ../configure --prefix=/usr/local/glibc-2.14 #配置预编译

    编译安装

        make # 编译,提高效率加上参数 -j4
        make install #安装

    make -j4说明参考https://blog.csdn.net/androiddeveloper_lee/article/details/32136261

    第三步:建立软连接解决问题

    ln -s /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

    一下转自:https://blog.csdn.net/lucky_greenegg/article/details/51199209

    如果还是不行,可以查看一下系统此时的GLIBC版本,参考一开始的做法。如果版本未升级,我们只能手动安装一下:

    首先make是成功了,那么我们会发现build目录下编译出了一个新的libc.so.6 (glibc-2.14/build/libc.so.6,我们会发现这实际上也是一个软连接,真实的lib文件时libc.so, 输出

        [root@localhost build]# strings libc.so|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_PRIVATE

    这是我们需要的lib了,然后去更新系统的库。

    这里要注意,更新系统里的链接(我的是/lib64/libc.so.6) 很容易出错,我不清楚有没有更好的办法,一般都是删除旧链接,建立新链接,但删除旧链接后,很多命令直接不能用了,因为此时中不到glibc的库了。这个时候就需要临时指定一个glibc库,方法如下(libc.so改个名以便好以后更新的其他版本区分):

        cp /root/glibc-2.14/build/libc.so /lib64/libc-2.14.so #/root/glibc-2.14/build为编译目录
        rm -rf /lib64/libc.so.6 # 删除原链接
        LD_PRELOAD=/lib64/libc-2.14.so ln -s /lib64/libc-2.14.so /lib64/libc.so.6

    更新连接完毕,然后验证,如下表示成功

        [root@localhost build]# 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_2.13
        GLIBC_2.14
        GLIBC_PRIVATE

     
    ————————————————
     

    ------道不行,乘桴浮于海!------ ------欲讷于言,而敏于行!-------
  • 相关阅读:
    C# 學習使用StatusStrip
    初學C#打印
    C# 學習使用ErrorProvider
    C# 字符串中增、刪、替換字符學習
    mos开发系列教程八:页面代码研究地图控件页面结构
    MapGuide open source开发系列教程五: 屏幕坐标与地图坐标(问题)已修改
    ajax学习笔记一:动态更改div位置
    mos开发系列教七:框架分析
    mos开发系列教程十:说明
    MapGuide open source开发系列教程六: 地图状态与事件(含问题)
  • 原文地址:https://www.cnblogs.com/dh17/p/14777599.html
Copyright © 2011-2022 走看看