ldconfig не соответствует пользовательской символической ссылке

Я пытаюсь запустить Inkscape 0.48.4-15 (armv7), который устанавливается через pacman из 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 

Как и ожидалось, общий объект недоступен в / 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 

Поэтому я делаю символическую ссылку, связывающую * .so.3 с * .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 

и убедитесь, что * .so.3 действительно связано с * .so.4.0.0.

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

Теперь я переконфигурирую динамические привязки времени выполнения компоновщика и повторно запустил Inkscape:

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

Почему *.so.3 связывается с самим собой и не следует за символической ссылкой, созданной ранее?

Ldd не соответствует символическим ссылкам. Он показывает только путь, где он находит библиотеку. ldd – диагностический прибор, и если он следит за символическими связями, которые препятствуют диагностике.