На моей машине UNIX я заметил, что двоичные файлы по умолчанию ищут зависимые общие библиотеки в /lib
каталоге ' ', даже несмотря на то, что каталог '/lib' не настроен в переменных ' PATH
' и ' LD_LIBRARY_PATH
'.
Ниже я вижу, что библиотека ' libssl.so.4
' найдена в /lib
каталоге ' '.
bash-3.00$ ldd openssl
/lib/libcwait.so (0x00f86000)
libssl.so.4 => /lib/libssl.so.4 (0x00408000)
Мои «PATH» и «LD_LIBRARY_PATH» приведены ниже:
bash-3.00$ echo $LD_LIBRARY_PATH
:/opt/oracle/product/11.2.0/client32/lib:
bash-3.00$ echo $PATH
/opt/pure/releases/purify.hp.2003a.06.15.FixPack.0214/cache/opt/star-ncf-prod/ep_patch/usr/lib:/usr/ccs/bin:/usr/bin:/usr/ucb:/etc:/bin:.:/opt/ccm71/bin:/opt/oracle/product/11.2.0/client32/bin:/opt/tools/bin:/usr/local/bin
Пожалуйста, сообщите mw, ссылаются ли двоичные файлы на каталог '/lib' по умолчанию?
решение1
Библиотеки (в ОС Linux) ищут в путях из /etc/ld.so.conf
(не из $PATH). После изменения этого файла необходимо запустить:
sudo ldconfig
Просмотреть пути поиска библиотек можно с помощью команды:
ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012
Пути по умолчанию: В пути по умолчанию /lib
, а затем /usr/lib
.Загрузчик Linux и как он находит библиотеки.