LinuxForum.Fans
Тема

Динамические библиотеки

Автор: Ivan_Nelasov 3 сообщений 1872 просмотров
#354627

Предистория
шаг 1)

text
 ldd /home/nsmn/build/make_old_cl/mpi/mpich215/bin/hydra_pmi_proxy
      libnsl.so.1 => /lib64/libnsl.so.1 (0x00002ad6e8bb5000)
      libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ad6e8ccb000)
      libnuma.so.1 => /usr/lib64/libnuma.so.1 (0x00002ad6e8de1000)
      libpci.so.3 => not found

Вывод не видит библиотеки libpci.so.3
шаг 2)

text
 export LD_LIBRARY_PATH=/panfs/panfs14.cyberia.tsu.ru/home/nsmn/build/make_old_cl/mpi/mpich215/lib:/panfs/panfs14.cyberia.tsu.ru/home/nsmn/build /make_old_cl/abinit/lib
text
ldd /home/nsmn/build/make_old_cl/mpi/mpich215/bin/hydra_pmi_proxy    
       libnsl.so.1 => /lib64/libnsl.so.1 (0x00002b355b458000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b355b56e000)
    libnuma.so.1 => /usr/lib64/libnuma.so.1 (0x00002b355b684000)
    libpci.so.3 => /panfs/panfs14.cyberia.tsu.ru/home/nsmn/build/make_old_cl/mpi/mpich215/lib/libpci.so.3 (0x00002b355b78a000)

Библиотеку видит

Шаг 3) Запускаем программу через mpiexec на этом же узле, среда окружения не меняется, mpiexec который тоже нуждается в этой библиотеке её видит и запускается (до задания LD_LIBRARY_PATH не видел и не запускался)

А вот эта, извините за выражение, гидра в упор его не видит

text
/home/nsmn/build/make_old_cl/mpi/mpich215/bin/hydra_pmi_proxy: error while loading shared libraries: libpci.so.3: cannot open shared object file: No such file or directory

Внимание вопрос, кто либо знает причины????

P/S/ Preload библиотеки пробовал - те-же грабли

#354643

Это нечто (похоже баг) - похоже эта самая hydra_pmi_proxy, в отличии от всех остальных программ, игнорирует параметры среды окружения и грузит библиотеку только из /lib64. Как бы я не root поэтому меня этот вариант не устраивает

Есть идеи?

#354657

А если расшарить библиотеку через ldconf ?

Добавить файл xxxx.conf , в котором содержится путь до библиотеки в папку /etc/ld.so.conf.d/. ну и потом

text
#ldconfig update
Войдите или зарегистрируйтесь, чтобы ответить.