libc.so.6误删除以及版本升级

  • libc.so.6误删除以及版本升级已关闭评论
  • 115,049 views
  • A+
所属分类:运维实战

前一段时间,为了解决libc.so.6升级问题,一不小心将libc.so.6这个文件删除了,导致好多命名不能用了,好在登录窗口还没有退出,不然就麻烦了。

其实我们知道,这个文件就是一个软连接,那么怎么恢复呢,其实很简单,命令如下:

LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so libc.so.6

这样就可以搞定。下来说说怎么升级吧。

libc.so.6误删除以及版本升级

如图,试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的,那么怎么处理呢

首先:我们需要查看一下系统支持的glibc版本,如下:

 

[root@iZm5ebs8t32xui1x96nZ /]# 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

通过上面可以看出,系统是支持2.14的,那么我们就下载glibc-2.14.tar.xz 的安装包,下载地址如下:

http://www.gnu.org/software/libc/

下载下来后,解压,编译

 

#tar glibc-2.14.tar.gz
#cd glibc-2.14
#./configure --prefix=/opt/glibc-2.14
#make 
#make install

执行完毕后去/opt/glibc-2.14/lib目录下找到libc-2.14.so 文件,然后执行如下命令

#LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so libc.so.6

然后,我们再查看一下系统当前使用的glibc版本,如下:

 

[root@iZm5ebs8t32xuitvm1x96nZ lib]# /lib64/libc.so.6 
GNU C Library stable release version 2.14, by Roland McGrath et al.
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.4.7 20120313 (Red Hat 4.4.7-18).
Compiled on a Linux 2.6.32 system on 2018-02-06.
Available extensions:
 crypt add-on version 2.1 by Michael Glad and others
 GNU Libidn by Simon Josefsson
 Native POSIX Threads Library by Ulrich Drepper et al
 BIND-8.2.3-T5B
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

这样就ok了,升级到其他高版本也一样

  • 我的微信
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar