咨询个libc.so.6替换的方法,谢谢了
Tofloor
poster avatar
RucLinux
deepin
2018-01-31 10:43
Author
[roothttps://bbs.deepin.org/user/72751 RucLinux]# find / -name libc.so
/usr/lib/libc.so
/opt/glibc-2.19/lib/libc.so

[root@localhost RucLinux]# find / -name libc.so.6
/usr/lib/libc.so.6
/opt/glibc-2.19/lib/libc.so.6
/lib/libc.so.6
/lib/i686/nosegneg/libc.so.6
[root@localhost RucLinux]#
刚才无知手剑,执行了 rm -rf /lib/libc.so.6 以为只是一个软链接,删了也没什么,想着删除旧的了,再用 ln -s /opt/glibc-2.19/lib/libc.so 做个新版本的软链接,但系统错误了。所有命令和窗口都打不开。只好恢复了系统。我系统中有两个版本的glibc, 一个是系统自带的 glibc2.12 一个是我额外编译的2.18 但现在看来是新版本的并没有起作用。请问应该如何解决呢? 谢谢了。

[RucLinux@localhost ~]$ gcc -v
使用内建 specs。
COLLECT_GCC=/usr/local/bin/gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/5.5.0/lto-wrapper
目标:i686-pc-linux-gnu
配置为:../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
线程模型:posix
gcc 版本 5.5.0 (GCC)

[RucLinux@localhost ~]$ ldd --version
ldd (GNU libc) 2.12
Copyright (C) 2010 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.
由 Roland McGrath 和 Ulrich Drepper 编写。
[RucLinux@localhost ~]$ strings /lib/libc.so.6 |grep GLIBC
GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.1
GLIBC_2.1.2
GLIBC_2.1.3
GLIBC_2.2
GLIBC_2.2.1
GLIBC_2.2.2
GLIBC_2.2.3
GLIBC_2.2.4
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_PRIVATE
[RucLinux@localhost ~]$ strings /opt/glibc-2.19/lib/libc.so.6 |grep GLIBC
GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.1
GLIBC_2.1.2
GLIBC_2.1.3
GLIBC_2.2
GLIBC_2.2.1
GLIBC_2.2.2
GLIBC_2.2.3
GLIBC_2.2.4
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_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_PRIVATE



Reply Favorite View the author
All Replies
avatar
wangyong
deepin
2018-01-31 17:10
#1
用apt-file搜索一下这个文件,让后把所属的deb包用 apt-get install xxx --reinstall 重新安装一遍试一下
Reply View the author
avatar
RucLinux
deepin
2018-02-04 11:42
#2
https://bbs.deepin.org/post/152678
# rm /lib64/libc.so.6 -f
# export LD_PRELOAD=/lib64/libc-2.12.so
# ln -s /lib64/libc-2.12.so /lib6 ...

libc.so 这个文件可以替换,我将它删除了再替换成新版本的都可以,但是一些功能会出错。
libc.so.6 这个链接不能替换,一替换成新版本的照样出错。谢谢您的回复
Reply View the author
avatar
RucLinux
deepin
2018-02-04 11:45
#3
本帖最后由 ruclinux 于 2018-2-4 03:50 编辑
https://bbs.deepin.org/post/152678
用apt-file搜索一下这个文件,让后把所属的deb包用 apt-get install xxx --reinstall 重新安装一遍试一下 ...

我用的是CentOS, 所以您说的这几个步骤我不适用,谢谢您的回复。
其实我这个问题还是网易云音乐遇到的问题,之前的那个libcef.so错误的问题我解决了,我重新下载了最新版本的cef库文件放到网易云音乐目录中,但是还是提示libc.so.6版本低的问题。我strings了 /lib/libc.so.6 这个软链接文件,提示它的版本还真是2.12的,我编译的新的2.19版本的libc.so不能替换这个软链接,一替换整个系统就出错。
Reply View the author
avatar
RucLinux
deepin
2018-02-04 12:12
#4
https://bbs.deepin.org/post/152678
# rm /lib64/libc.so.6 -f
# export LD_PRELOAD=/lib64/libc-2.12.so
# ln -s /lib64/libc-2.12.so /lib6 ...

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

ln: relocation error: /opt/glibc-2.19/lib/libc-2.19.so: symbol _dl_find_dso_for_object, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference

提示这个错误
Reply View the author
avatar
RucLinux
deepin
2018-02-04 14:13
#5
[root@localhost RucLinux]# ll /lib/lib*.so
lrwxrwxrwx  1 root root      11 8月  26 00:45 /lib/libacl.so -> libacl.so.1
-rwxr-xr-x  1 root root   13896 6月  20 2017 /lib/libanl-2.12.so
lrwxrwxrwx. 1 root root      12 3月  19 2013 /lib/libattr.so -> libattr.so.1
-rwxr-xr-x  1 root root    7636 6月  20 2017 /lib/libBrokenLocale-2.12.so
-rwxr-xr-x  1 root root 1909464 6月  20 2017 /lib/libc-2.12.so
-rwxr-xr-x  1 root root 9131557 1月  21 01:25 /lib/libc-2.19.so
lrwxrwxrwx  1 root root      38 1月  21 03:39 /lib/libcef.so -> /usr/lib/netease-cloud-music/libcef.so
-rwxr-xr-x  1 root root  195532 6月  20 2017 /lib/libcidn-2.12.so
-rwxr-xr-x  1 root root   38824 6月  20 2017 /lib/libcrypt-2.12.so
-rw-r--r--  1 root root     279 1月  31 02:31 /lib/libc.so
-rwxr-xr-x  1 root root 1531356 3月  22 2017 /lib/libdb-4.7.so
lrwxrwxrwx. 1 root root      18 4月  23 2015 /lib/libdbus-1.so -> libdbus-1.so.3.4.0
lrwxrwxrwx  1 root root      46 11月 17 03:21 /lib/libdevmapper-event-lvm2mirror.so -> device-mapper/libdevmapper-event-lvm2mirror.so
lrwxrwxrwx  1 root root      44 11月 17 03:21 /lib/libdevmapper-event-lvm2raid.so -> device-mapper/libdevmapper-event-lvm2raid.so
lrwxrwxrwx  1 root root      48 11月 17 03:21 /lib/libdevmapper-event-lvm2snapshot.so -> device-mapper/libdevmapper-event-lvm2snapshot.so
lrwxrwxrwx  1 root root      44 11月 17 03:21 /lib/libdevmapper-event-lvm2thin.so -> device-mapper/libdevmapper-event-lvm2thin.so
-rwxr-xr-x  1 root root   18352 6月  20 2017 /lib/libdl-2.12.so
lrwxrwxrwx. 1 root root      34 1月  22 2013 /lib/libdmraid-events-isw.so -> libdmraid-events-isw.so.1.0.0.rc16
lrwxrwxrwx. 1 root root      23 1月  22 2013 /lib/libdmraid.so -> libdmraid.so.1.0.0.rc16
-rwxr-xr-x. 1 root root    9604 7月  12 2016 /lib/libfreebl3.so
-rwxr-xr-x. 1 root root  378504 7月  12 2016 /lib/libfreeblpriv3.so
lrwxrwxrwx. 1 root root      16 5月  28 2016 /lib/libfuse.so -> libfuse.so.2.8.3
-rwxr-xr-x  1 root root  200624 6月  20 2017 /lib/libm-2.12.so
-rwxr-xr-x  1 root root  114356 6月  20 2017 /lib/libnsl-2.12.so
-rwxr-xr-x  1 root root  245676 3月  23 2017 /lib/libnspr4.so
-rwxr-xr-x  1 root root   40652 6月  20 2017 /lib/libnss_compat-2.12.so
-rwxr-xr-x  1 root root   26040 6月  20 2017 /lib/libnss_dns-2.12.so
-rwxr-xr-x  1 root root   59172 6月  20 2017 /lib/libnss_files-2.12.so
-rwxr-xr-x  1 root root   22584 6月  20 2017 /lib/libnss_hesiod-2.12.so
-rwxr-xr-x  1 root root   50164 6月  20 2017 /lib/libnss_nis-2.12.so
-rwxr-xr-x  1 root root   59156 6月  20 2017 /lib/libnss_nisplus-2.12.so
-rwxr-xr-x  1 root root   17908 3月  23 2017 /lib/libplc4.so
-rwxr-xr-x  1 root root   13780 3月  23 2017 /lib/libplds4.so
-rwxr-xr-x  1 root root   56772 7月  12 2017 /lib/libproc-3.2.8.so
-rwxr-xr-x  1 root root  131848 6月  20 2017 /lib/libpthread-2.12.so
-rwxr-xr-x  1 root root  107936 6月  20 2017 /lib/libresolv-2.12.so
-rwxr-xr-x  1 root root   40268 6月  20 2017 /lib/librt-2.12.so
-rwxr-xr-x  1 root root   20804 6月  20 2017 /lib/libSegFault.so
-rwxr-xr-x  1 root root   32072 6月  20 2017 /lib/libthread_db-1.0.so
lrwxrwxrwx. 1 root root      20 5月  28 2016 /lib/libulockmgr.so -> libulockmgr.so.1.0.1
-rwxr-xr-x  1 root root   13224 6月  20 2017 /lib/libutil-2.12.so
[root@localhost RucLinux]#
[root@localhost RucLinux]#
[root@localhost RucLinux]# ll /lib/lib*.so.6
lrwxrwxrwx  1 root root 17 2月   4 04:07 /lib/libc.so.6 -> /lib/libc-2.12.so
lrwxrwxrwx  1 root root 12 6月  22 2017 /lib/libm.so.6 -> libm-2.12.so
lrwxrwxrwx. 1 root root 18 1月  22 2013 /lib/libreadline.so.6 -> libreadline.so.6.0
[root@localhost RucLinux]#
ll 各种so文件显示如此
Reply View the author
avatar
RucLinux
deepin
2018-02-05 10:34
#6

差点又重装系统了,在ln -s的时候加上了一个ln -sf,导致不能恢复,还好有一个终端窗口没有关闭,也是用ln -sf恢复了。
[root@localhost RucLinux]# ln -sf /opt/glibc-2.19/lib/libc-2.19.so /lib/libc.so.6
[root@localhost RucLinux]# ls -l /lib/libc.so.6
ls: relocation error: /lib/libc.so.6: symbol _dl_find_dso_for_object, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference
[root@localhost RucLinux]# LD_PRELOAD=/lib/libc-2.12.so ln -sf /lib/libc-2.12.so /lib/libc.so.6
[root@localhost RucLinux]#



Reply View the author