ldconfig não seguindo o link simbólico criado pelo usuário

3

Estou tentando executar o Inkscape 0.48.4-15 (armv7) que é instalado via pacman do Arch Linux ARM.

$ inkscape
inkscape: error while loading shared libraries: libMagick++-6.Q16HDRI.so.3: cannot open shared object file: No such file or directory

Como esperado, o objeto compartilhado não está disponível em / usr / lib:

$ ll /usr/lib | grep libMagick+
lrwxrwxrwx   1 root root       30 Jun  5 03:04 libMagick++-6.Q16HDRI.so ->     libMagick++-6.Q16HDRI.so.4.0.0
lrwxrwxrwx   1 root root       30 Jun  5 03:04 libMagick++-6.Q16HDRI.so.4 -> libMagick++-6.Q16HDRI.so.4.0.0
-rwxr-xr-x   1 root root   379428 Jun  5 03:06 libMagick++-6.Q16HDRI.so.4.0.0

Então eu faço um link simbólico ligando * .so.3 a * .so.4.0.0:

$ sudo ln -s libMagick++-6.Q16HDRI.so.4.0.0 libMagick++-6.Q16HD.so.3
lrwxrwxrwx   1 root root       30 Jun  5 03:04 libMagick++-6.Q16HDRI.so -> libMagick++-6.Q16HDRI.so.4.0.0
lrwxrwxrwx   1 root root       30 Jun  6 15:15 libMagick++-6.Q16HDRI.so.3 -> libMagick++-6.Q16HDRI.so.4.0.0
lrwxrwxrwx   1 root root       30 Jun  5 03:04 libMagick++-6.Q16HDRI.so.4 -> libMagick++-6.Q16HDRI.so.4.0.0
-rwxr-xr-x   1 root root   379428 Jun  5 03:06 libMagick++-6.Q16HDRI.so.4.0.0

e verifique se o * .so.3 está vinculado a * .so.4.0.0.

$ readlink -f libMagick++-6.Q16HDRI.so.3
/usr/lib/libMagick++-6.Q16HDRI.so.4.0.0

Agora reconfigure as ligações de tempo de execução do vinculador dinâmico e execute novamente o Inkscape:

$ sudo ldconfig 
$ ldd $(which inkscape) | grep libMagick++
libMagick++-6.Q16HDRI.so.3 => /usr/lib/libMagick++-6.Q16HDRI.so.3 (0x75cf9000)

Por que *.so.3 está vinculado a si mesmo e não segue o link simbólico criado anteriormente?

    
por citrix14 06.06.2014 / 16:30

1 resposta

3

Ldd não segue os links simbólicos. Mostra apenas o caminho, onde encontra a biblioteca. ldd - instrumento de diagnóstico e se seguir links simbólicos que impedem o diagnóstico.

    
por 06.06.2014 / 16:51