• ldconfig 引起的事故


    算法同学想自己提升下主机的glibc版本,区别运维同学使用container的方式来解决环境问题。他们直接做以下操作

    wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
    tar zxvf glibc-2.28.tar.gz
    cd glibc-2.28
    mkdir build
    cd build
    ../configure --prefix=/opt/glibc-2.18


    .........
    一系列神鬼操作

    最后

    运维同学发现有程序调用 libstdc++.so.6 时报错 

    : /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6)

    直接重新修改软连接后 执行ldconfig命令。 引起系统崩溃

    仔细看过后想起来,之前是想升级把libc.so.6指到了libc-2.17.so,导致了系统故障,这次libc.so.6指到哪个动态库呢?(动态库知识),这次在rescue模式修复libc.so.6的链接时,它指向了libc-2.17.so.确实是和之前一样的问题. 在这个博客中提到ldconfig为在命令行中说明的目录或文件/etc/ld.so.config中指定的目录或一些可信任的目录(象/usr/lib, /lib)中的最新的动态连接库创建必要的连接和绶存。这些绶存起来的数据会被动态连接器ld.so 或 ld-linux.so所使用。ldconfig会检查它所遇到的动态库文件的名称与版本号,以决定那些动态库的连接要进行更新。

    解决方案:

            mv 高版本的 libstdc++.so.6 文件到。/tmp下 重新 ldconfig

  • 相关阅读:
    学习进度笔记01
    《一级架构师实践指南》阅读笔记
    需求概述开发进度14
    需求概述开发进度13
    需求概述开发进度12
    需求概述开发进度11
    需求概述开发进度10
    爬虫的requests库和BeautifulSoup4的学习
    模拟体育竞技分析
    python文件格式转换
  • 原文地址:https://www.cnblogs.com/leleyao/p/15292582.html
Copyright © 2020-2023  润新知