Динамически слинкованный бинарник не содержит код библиотек внутри — при запуске загрузчик находит .so-файлы по путям из кэша. ldd, ldconfig и LD_PRELOAD управляют этим процессом, пригождаются при error while loading shared libraries.
# какие .so нужны бинарнику и откуда они реально берутся
ldd /usr/bin/nginx
# обновить кэш путей после установки новой библиотеки в нестандартный путь
ldconfig
ldconfig -p | grep libssl # проверить, что библиотека в кэше
# подменить библиотеку на лету, без пересборки бинарника
LD_PRELOAD=/opt/libs/libfake.so ./app
LD_PRELOAD удобен для отладки и быстрых хаков без правки исходников, но тем же механизмом пользуются руткиты — лишняя строка в выводе ldd повод проверить /etc/ld.so.preload.
#linux #debugging #sysadmin
