Утилита ldconfig создает необходимые ссылки и кэш к самым последним общим библиотекам, найденным в каталогах, указанных в командной строке, в файле /etc/ld.so.conf и в доверенных каталогах, /lib и /usr/lib (на некоторых 64-битных архитектурах, таких как x86-64, /lib и /usr/lib, являются доверенными каталогами для 32-битных библиотек, в то время как /lib64 и /usr/lib64 используются для 64-разрядных библиотек).
Кэш используется run-time линкером ld.so или ld-linux.so. Утилита ldconfig проверяет заголовки и имена файлов библиотек, с которыми она сталкивается при определении того, какие версии должны иметь обновленные ссылки.
Утилита ldconfig пытается автоматически определить тип ELF-библиотек (например libc5 или libc6/glibc), основываясь на том, какие C-библиотеки, если они есть, были линкованы. Некоторые существующие библиотеки не содержат достаточно информации, чтобы можно было вывести их тип. Поэтому формат файла /etc/ld.so.conf позволяет указать спецификацию ожидаемого типа. Это используется только для тех ELF-библиотек, которые не могут быть обработаны. Формат следующий: "dirname=TYPE", где TYPE может быть libc4, libc5 или libc6 (этот синтаксис также работает в командной строке). Пробелы не допускаются. См. также опцию -p. Утилита ldconfig должна быть обычно запущена суперпользователем, поскольку она может требовать прав на запись над некоторыми директориями и файлами, у которых владелец root.
Обратите внимание, что ldconfig будет смотреть только на файлы с именами lib*.so* (для обычных shared-объектов) или ld-*.so* (для самого динамического загрузчика). Другие файлы будут игнорироваться. Также ldconfig ожидает определенного шаблона, как настраиваются символические ссылки, как в этом примере, где промежуточный файл (здесь libfoo.so.1) это SONAME для библиотеки:
SONAME: этим термином обозначают часть имени библиотеки, которая определяет совместимость одной версии библиотеки с другой. Например, libjson-c.so.3 и libjson-c.so.4 обозначают две несовместимые SONAME библиотек. Совместимыми будут считаться, например, библиотеки libjson-c.so.4.2 и libjson-c.so.4.4, а библиотеки libjson-c.so.3.0 и libjson-c.so.4.0 будут несовместимыми.
Если не придерживаться такого шаблона, то это может привести к проблемам совместимости при обновлении библиотек.
ОПЦИИ
-c fmt, --format=fmt (начиная с glibc 2.2) используемый формат кеша: old, new или compat. Начиная с glibc 2.32 по умолчанию применяется new. До этого был compat.
-C cache Использовать cache вместо /etc/ld.so.cache.
-l (начиная с glibc 2.2) режим библиотеки. Линковка вручную отдельных библиотек. Эта опция предназначена только для экспертов.
-n Обрабатывать только директории, указанные в командной строке. Не обрабатывать ни trusted-директории, ни те, которые указаны в /etc/ld.so.conf. Подразумевает -N.
Это так называемые "доверенные" каталоги, предназначенные для запуска из них программного обеспечения.
-N Не перестраивать кеш. Если также не указана опция -X, то ссылки все еще обновятся.
-p, --print-cache Напечатает список директорий и кандидатов библиотек, сохраненных в текущем кэше.
-r root Поменять текущую директорию на root и использовать как корневую директорию.
-v, --verbose Подробный режим. Напечатает текущий номер версии, имя каждой сканируемой директории, и любые созданные ссылки. Отменяет тихий режим (quiet mode).
-V, --version Напечатает версию программы.
-X Не обновлять ссылки. Если также не указана опция -N, кеш все еще будет перестроен.
ФАЙЛЫ
/lib/ld.so Run-time linker/loader.
/etc/ld.so.conf Файл со списком директорий, по одной в каждой строке, где происходит поиск библиотек.
/etc/ld.so.cache Файл, содержащий упорядоченный список библиотек, найденных как в директориях, указанных в /etc/ld.so.conf, так и найденных в trusted-директориях.