更新glibc之后:分段错误(核心已转储) [英] After updating glibc: Segmentation fault (core dumped)

查看:669
本文介绍了更新glibc之后:分段错误(核心已转储)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在使用centos 6.5.然后,我用yum更新了我的glibc.

I've been using centos 6.5. And after I used the yum to update my glibc.

yum update glibc

我发现我的"yum"命令以及我的"python"命令将引发以下错误:

I found that my "yum" command as well as my "python" command will throw error as follows:

我已经厌倦了其他shell命令,例如:ls ll ln rm mv等.这些命令正常工作.当我检查我的libc链接时,结果如下:

I' ve tired other shell commands like: ls ll ln rm mv etc. Those commands are working normally. When I check my libc link, the result are as follows:

此外,我尝试使用来打印我的libz配置

Additionally, I have tried to print my libz config using

ldconfig -v|grep libz

结果将如下所示:

我想知道为什么会发生这种情况.我真的需要你们的帮助来解决这个问题.

I was wondering why this may happen. And I really need your guys help to solve this problem.

此外,我的'gdb'也将引发此错误.当我使用"dmesg"命令时,收到如下消息:

What's more, my 'gdb' will throw this error too. When I use 'dmesg' command, I got the message as follows:

推荐答案

CentOS 6基于glibc 2.12.符号链接指向glibc 2.16,因此您尝试安装不属于操作系统的glibc软件包.这损坏了系统,可能无法修复.您将需要重新安装它并从备份中恢复数据.

CentOS 6 is based on glibc 2.12. The symbolic link points to glibc 2.16, so you tried to install a glibc package which is not part of the operating system. This has corrupted the system, likely beyond repair. You will jave to reinstall it and restore the data from backup.

避免重新安装是一项复杂的操作.您需要确保仍然具有glibc 2.12的所有文件(名称以-2.12.so结尾).然后,您可以通过一次rm调用删除glibc 2.16文件(以-2.16.so结尾的文件). (必须执行一次rm调用,因为一旦开始删除glibc 2.16文件,rm将停止工作.)之后,您可以运行ldconfig来获取正确的符号链接.

Avoid reinstallation is a complex operation. You need to make sure that you still have all the files for glibc 2.12 (with names ending in -2.12.so). Then you can delete the glibc 2.16 files (those ending in -2.16.so), with a single rm invocation. (The single rm invocation is necessary because rm will stop working once you start deleting the glibc 2.16 files.) After that, you can run ldconfig to get back the right symbolic links.

您也可以尝试使用slnln -sf手动修复符号链接,但是您必须一次删除glibc 2.16文件.在执行后者之前,每次ldconfig调用都将带回glibc 2.16符号链接.并且ldconfig是在软件包安装过程中自动运行的,因此这很容易偶然发生.

You could also try to use sln or ln -sf to fix the symbolic links manually, but you will have to remove the glibc 2.16 files at one point. Until you do the latter, every ldconfig invocation will bring back the glibc 2.16 symbolic links. And ldconfig is run automatically during package installation, so this can happen quite easily by accident.

这篇关于更新glibc之后:分段错误(核心已转储)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆