Пути поиска файлов общих объектов
Какова последовательность путей, которые ищутся для загрузки файла общего объекта?
Я пытаюсь запустить исполняемый файл, который пытается загрузить общий объектный файл. Общий объектный файл можно найти по адресу /usr/lib/x86_64-linux-gnu/
,
У меня есть два пользователя, давайте назовем их user1
а также user2
, user1
может запустить исполняемый файл, но user2
обнаруживает ошибку: не удается открыть файл общего объекта: libicuuc.so
У обоих пользователей одинаковые LD_LIBRARY_PATH
, Что такое мизинг?
1 ответ
Решение
man ldconfig может вам помочь
/etc/ld.so.cache File containing an ordered list of libraries found
in the directories specified in /etc/ld.so.conf, as
well as those found in /lib and /usr/lib.
но ваш дистрибутив может содержать другую информацию, кроме моей, поэтому вы должны прочитать свою.
Другой способ решить, какие / какие библиотеки связаны с вашим исполняемым файлом, - использовать программу ldd. Пример:
ldd /bin/echo
linux-vdso.so.1 => (0x00007ffc2277a000)
libc.so.6 => /lib64/libc.so.6 (0x0000003edc200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003edbe00000)