/sbin/ldconfig.real: /usr/lib/libstdc++.so.5 不是符号链接

eff*_*ffe 6 shared-library symbolic-link 16.04

我不断收到此错误:

fmf@kodi:~$ sudo ldconfig  
/sbin/ldconfig.real: /usr/lib/libstdc++.so.5 is not a symbolic link  
Run Code Online (Sandbox Code Playgroud)

关于如何修复它的任何想法?

fmf@kodi:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
Run Code Online (Sandbox Code Playgroud)

Zan*_*nna 11

最可能的原因是有两个文件名几乎相同但内容相同,一个应该是另一个的符号链接,但不是。下面是我的两个文件/usr/lib是OK

libgimpui-2.0.so.0 -> libgimpui-2.0.so.0.800.16
libgimpui-2.0.so.0.800.16 
Run Code Online (Sandbox Code Playgroud)

(这个符号链接是为了让libgimpui-2.0.so.0寻找新版本的程序找到新版本)

你显然有libstdc++.so.5一个相关的文件,例如libstdc++.so.5.300.0或可能libstdc++.so.6,它们的内容完全相同。这样做cd /usr/lib; ls,看看是否是这种情况。

检查两个文件是否相同,例如 do(替换此命令中正确的文件名):

diff libstdc++.so.5 libstdc++.so.[rest.of.filename]
Run Code Online (Sandbox Code Playgroud)

如果它们相同,diff则不返回任何输出。

当且仅当它们相同时,删除libstdc++.so.5并创建指向具有该名称的另一个文件的符号链接。

sudo rm libstdc++.so.5
sudo ln -s libstdc++.so.[rest.of.filename] libstdc++.so.5
Run Code Online (Sandbox Code Playgroud)

基于Stack Overflow上的这个问题