Пути поиска файлов общих объектов

270
Mukul Gupta

Какова последовательность путей, которые ищутся для загрузки файла общего объекта?

Я пытаюсь запустить исполняемый файл, который пытается загрузить общий объектный файл. Общий объектный файл можно найти по адресу /usr/lib/x86_64-linux-gnu/.

У меня есть два пользователя, давайте назовем их user1и user2. user1может запустить исполняемый файл, но user2сталкивается с ошибкой: не удается открыть общий объектный файл: libicuuc.so

У обоих пользователей одинаковое LD_LIBRARY_PATH. Что такое мизинг?

1
Имеет ли user2 правильные права на чтение libicuuc.so? DavidPostill 8 лет назад 1
Да, `user2` может читать libicuuc.so. Mukul Gupta 8 лет назад 0
Оказывается, `user2` пытался запустить 32-битный исполняемый файл для другого дистрибутива. `ldd` помог отладить проблему. Спасибо! Mukul Gupta 8 лет назад 0

1 ответ на вопрос

1
Gombai Sándor

man ldconfig may help you

/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. 

but your distrib may contain other info than mine, so you should read yours.

Another way to decide what/which libraries are bound to your executable is to use the ldd program An example:

ldd /bin/echo linux-vdso.so.1 => (0x00007ffc2277a000) libc.so.6 => /lib64/libc.so.6 (0x0000003edc200000) /lib64/ld-linux-x86-64.so.2 (0x0000003edbe00000) 

Похожие вопросы