Сами библиотеки, представляют собой набор функций, который может использоваться различными программами. Linux использует два вида библиотек:
По умолчанию, библиотеки находятся в двух директориях
Пути к библиотекам указаны в файле
cat /etc/ld.so.conf include /etc/ld.so.conf.d/*.conf
Как видим конфигурационные файла с указанием путей к библиотекам хранятся в директории
ls -l /etc/ld.so.conf.d/ итого 12 -rw-rw-r-- 1 root root 38 ноя 24 2014 fakeroot-x86_64-linux-gnu.conf -rw-r--r-- 1 root root 44 янв 27 2016 libc.conf -rw-r--r-- 1 root root 68 апр 15 2016 x86_64-linux-gnu.conf lrwxrwxrwx 1 root root 43 июн 29 2018 x86_64-linux-gnu_EGL.conf -> /etc/alternatives/x86_64-linux-gnu_egl_conf lrwxrwxrwx 1 root root 42 июн 29 2018 x86_64-linux-gnu_GL.conf -> /etc/alternatives/x86_64-linux-gnu_gl_conf
смотрим откуда берет библиотеки libc.conf
cat /etc/ld.so.conf.d/libc.conf # libc default configuration /usr/local/lib
Дополнительное программное обеспечение, которому нужны свои библиотеки не идущие в состав дистрибутива, может создать в этой директории - свой конфигурационный файл.
Для того, чтобы приложение использующее динамические библиотеки могло найти их, используется следующие конфигурационные файлы, находящиеся в директории /etc
ls -l /etc | grep ld.so # Кэш библиотек -rw-r--r-- 1 root root 49970 июн 20 06:21 ld.so.cache # Файл конфигурации, который указывает откуда брать библиотеки -rw-r--r-- 1 root root 34 янв 27 2016 ld.so.conf # Директория в которой находятся дополнительные конфигурационные файлы drwxr-xr-x 2 root root 4096 ноя 6 2018 ld.so.conf.d
для обновления кэша используется команда
ldconfig
Для того, чтобы посмотреть какими библиотеками пользуется та или иная программа используем команду ldd
ldd /bin/cat linux-vdso.so.1 => (0x00007ffe6f124000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe8e9c80000) /lib64/ld-linux-x86-64.so.2 (0x00007fe8ea04a000)
Если по каким-то причинам, нужно в ручную указать путь к исполняемым файлам библиотек, для этого используем специальную переменную среды
# так export LD_LIBRARY_PATH=/your/custom/path_1:/your/custom/path_2 # или так export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/ # также сразу можем добавить в ~/.bashrc echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/' >> ~/.bashrc
Либо в директории /etc/ld.so.conf.d создать файл конфигурации, и в нем указать путь к библиотекам
vim /etc/ld.so.conf.d/NewLibs.conf /home/linux/myLocalLibs # После сохранения файла, обязательно выполним ldconfig