ОПИСАНИЕ¶
ldconfig создаёт необходимые привязки и кэш для большинства необходимых динамических библиотек, найденных в каталогах, которые указываются в командной строке, в файле /etc/ld.so.conf, и в доверенные каталогах (/lib и /usr/lib). Созданный кэш используется компановщиками ld.so и ld-linux.so, которые выполняют связывание во время выполнения. ldconfig проверяет заголовок и имена файлов библиотек, их столкновения, когда определяется какая версия должна иметь более новые ссылки.
ldconfig будет пытаться вывести заключение о типе ELF библиотек (т.е. libc5 или libc6/glibc), основанных на библиотеках языка C и о том какая библиотека должна быть связана. Поэтому, при создании динамических баблиотек, явно указывают на связывание с libc (используя -lc).
Некоторые существующие библиотеки не содержат необходимую информацию, чтобы сделать вывод об их типе. Поэтому файл /etc/ld.so.conf разрешает задавать ожидаемый тип. Эта возможность используется только для тех ELF библиотек, с которыми мы иначе не можем работать. Формат выглядит как «dirname=TYPE», где TYPE может принмать значение libc4, libc5 или libc6. (Данный синтаксис работает также и в командной строке). Пробелы не разрешаются. Также смотрите опцию -p . ldconfig обычно должен запускаться суперпользователем, так как выполнение может требовать прав на запись в некоторые каталоги и файлы, владельцем которых является root.
ОПЦИИ¶
-v Режим подробностей. Выдаётся номер текущей версии, имя каждого каталога, который сканируется и все создаваемые символьные ссылки. Перекрывает режим молчания. -n Обрабатывать только каталоги, заданные в командной строке. Не обрабатывать ни доверенные каталоги (/lib и /usr/lib) ни те, которые заданы в /etc/ld.so.conf. Неявно включает -N. -N Не перестраивать кэш. За исключением случая, когда также задаётся -X , ссылки будут обновлены. -X Не обновлять ссылки. За исключением случая, когда также задаётся -N , кэш будет перестроен. -f conf Использовать conf вместо /etc/ld.so.conf. -C cache Использовать cache вместо /etc/ld.so.cache. -r root Изменить и использовать root в качестве корневого каталога. -l Библиотечный режим. Ручное связывание отдельных библиотек. Предназначен только для экспертов. -p Выдать список каталогов и библиотек-кандидатов, сохранённый в текущем кэше.
ФАЙЛЫ¶
/lib/ld.so динамический компановщик /etc/ld.so.conf Файл, содержащий список разделённых двоеточием, пробелом, табуляцией или символом новой строки, каталогов, в которых производится поиск библиотек. /etc/ld.so.cache Файл, содержащий сортированный список библиотек, найденных в каталогах, заданных в /etc/ld.so.conf.
ПЕРЕВОД¶
Source file: | ldconfig.8.ru.gz (from manpages-ru 0.98-4) |
Source last updated: | 2004-02-08T11:23:46Z |
Converted to HTML: | 2017-06-07T16:51:55Z |
What is linux ldconfig
/sbin/ldconfig -l [ -v ] библиотека .
ОПИСАНИЕ
ldconfig создаёт необходимые привязки и кэш для большинства необходимых динамических библиотек, найденных в каталогах, которые указываются в командной строке, в файле /etc/ld.so.conf , и в доверенные каталогах ( /lib и /usr/lib ). Созданный кэш используется компановщиками ld.so и ld-linux.so , которые выполняют связывание во время выполнения. ldconfig проверяет заголовок и имена файлов библиотек, их столкновения, когда определяется какая версия должна иметь более новые ссылки.
ldconfig будет пытаться вывести заключение о типе ELF библиотек (т.е. libc5 или libc6/glibc), основанных на библиотеках языка C и о том какая библиотека должна быть связана. Поэтому, при создании динамических баблиотек, явно указывают на связывание с libc (используя -lc).
Некоторые существующие библиотеки не содержат необходимую информацию, чтобы сделать вывод об их типе. Поэтому файл /etc/ld.so.conf разрешает задавать ожидаемый тип. Эта возможность используется только для тех ELF библиотек, с которыми мы иначе не можем работать. Формат выглядит как «dirname=TYPE», где TYPE может принмать значение libc4, libc5 или libc6. (Данный синтаксис работает также и в командной строке). Пробелы не разрешаются. Также смотрите опцию -p . ldconfig обычно должен запускаться суперпользователем, так как выполнение может требовать прав на запись в некоторые каталоги и файлы, владельцем которых является root.
ОПЦИИ
-v Режим подробностей. Выдаётся номер текущей версии, имя каждого каталога, который сканируется и все создаваемые символьные ссылки. Перекрывает режим молчания. -n Обрабатывать только каталоги, заданные в командной строке. Не обрабатывать ни доверенные каталоги ( /lib и /usr/lib ) ни те, которые заданы в /etc/ld.so.conf . Неявно включает -N . -N Не перестраивать кэш. За исключением случая, когда также задаётся -X , ссылки будут обновлены. -X Не обновлять ссылки. За исключением случая, когда также задаётся -N , кэш будет перестроен. -f conf Использовать conf вместо /etc/ld.so.conf . -C cache Использовать cache вместо /etc/ld.so.cache . -r root Изменить и использовать root в качестве корневого каталога. -l Библиотечный режим. Ручное связывание отдельных библиотек. Предназначен только для экспертов. -p Выдать список каталогов и библиотек-кандидатов, сохранённый в текущем кэше.
ФАЙЛЫ
/lib/ld.so динамический компановщик /etc/ld.so.conf Файл, содержащий список разделённых двоеточием, пробелом, табуляцией или символом новой строки, каталогов, в которых производится поиск библиотек. /etc/ld.so.cache Файл, содержащий сортированный список библиотек, найденных в каталогах, заданных в /etc/ld.so.conf .
What is linux ldconfig
Команда ldconfig предназначена для вызова одноименной утилиты, осуществляющей формирование кэша информации о новейших версиях разделяемых библиотек и создание символьных ссылок на них для последующей корректной работы динамического линковщика ld.so. Разделяемые библиотеки обычно содержат реализации функций, которые необходимы для корректной работы приложений или других разделяемых библиотек. Разделяемые библиотеки (*.so) являются полным аналогом динамических библиотек (*.dll) из Windows. Утилита использует файл конфигурации /etc/ld.so.conf для чтения списка нестандартных директорий с разделяемыми библиотеками (стандартными являются /usr/lib и /lib), а также получения дополнительной информации о некоторых библиотеках. Кроме того, она обрабатывает заголовочные файлы библиотек и их имена для создания символьных ссылок. Файл кэша динамического линковщика имеет имя /etc/ld.so.cache, следовательно, для его модификации требуются права суперпользователя. Единственным вариантом продуктивного использования утилиты без прав суперпользователя является вариант с указанием альтернативной директории с разделяемыми библиотеками для создания символьных ссылок без изменения системного кэша.
Базовый синтаксис команды выглядит следующим образом:
Утилита поддерживает параметр -v, позволяющий выводить дополнительную информацию об именах обрабатываемых директорий и именах создаваемых символьных ссылок, параметр -n, позволяющий обрабатывать лишь файлы разделяемых библиотек в указанных директориях, параметр -N позволяющий не обновлять системный кэш динамического линковщика, а ограничиться лишь созданием символьных ссылок, параметр -X, позволяющий не создавать символьных ссылок, а ограничиться лишь обновлением системного кэша динамического линковщика, параметр -f, позволяющий использовать указанный файл конфигурации утилиты вместо /etc/ld.so.conf, параметр -C, позволяющий использовать указанный файл системного кэша динамического линковщика вместо /etc/ld.so.cache, параметр -r, позволяющий изменить корневую директорию, параметр -p для отображения содержимого системного кэша динамического линковщика, а также параметр -c для указания формата системного кэша динамического линковщика (old, new, compat). В большинстве случаев вам не придется использовать данных параметров.
Примеры использования
Вывод содержимого системного кэша динамического линковщика
Для вывода содержимого системного кэша динамического линковщика, следует использовать параметр -p утилиты.
# ldconfig -p
1330 библиотек найдено в кэше «/etc/ld.so.cache»
libzvbi.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libzvbi.so.0
libzvbi-chains.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libzvbi-chains.so.0
libzstd.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libzstd.so.1
…
Как видно, системный кэш содержит информацию о 1330 библиотеках, причем в кэше имеется информация о полных путях к библиотекам, их архитектурах и используемых версиях стандартной библиотеки языка C (libc).
Обновление содержимого системного кэша динамического линковщика
Для обновления содержимого системного кэша динамического линковщика без создания символьных ссылок следует использовать параметр -X и иметь права суперпользователя. Также для наглядности можно воспользоваться параметром -v.
# ldconfig -X -v
/lib/x86_64-linux-gnu:
libsepol.so.1 -> libsepol.so.1
libreadline.so.8 -> libreadline.so.8.0
libnss_mdns4.so.2 -> libnss_mdns4.so.2
…
Утилита выведет список всех разделяемых библиотек, найденных в системе. Данная операция может исполняться при повреждении системного файла кэша динамического линковщика.
Обновление ссылок на разделяемые библиотеки
Для обновления ссылок на разделяемые библиотеки достаточно использовать параметр -N (для обработки всех системных директорий) или параметр -n (для указания конкретной директории).
# ldconfig -v -n /lib
/lib:
libdmraid.so.1.0.0.rc16 -> libdmraid.so.1.0.0.rc16
libhandle.so.1 -> libhandle.so.1.0.3
В данном случае были созданы символьные ссылки для двух разделяемых библиотек.