1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
При запуске программ нужно найти и загрузить все библиотеки — за это отвечает так называемый компоновщик времени выполнения. При этом учитываются все каталоги, указанные в переменной окружения LDLIBRARYPATH. Эти каталоги разделяются двоеточиями. Кроме того, компоновщик интерпретирует файл /etc/ld.so.cache. Это двоичный файл, содержащий всю важную информацию о библиотеке (номера версий, пути доступа и т. д.). Он нужен только для того, чтобы сэкономить время, которое компоновщик в противном случае потратил бы на поиск библиотек. Файл /etc/ld.so.cache создается программой ldconfig, которая, в свою очередь, интерпретирует /etc/ld.so.conf. В этом файле обычно содержится список всех библиотечных каталогов или список ссылок на другие файлы с каталогами. Каталоги /lib и /usr/lib учитываются в любом случае и поэтому отсутствуют в ld.so.conf или других конфигурационных файлах. Если кроме /lib и /usr/lib не придется учитывать никаких каталогов, то ld.so.conf можно вообще опустить. В некоторых дистрибутивах команда ldconfig выполняется при каждом запуске компьютера, чтобы гарантировать максимально обновленное состояние файла кэша. Ее всегда нужно выполнять в тех случаях, когда вы вручную устанавливаете новую библиотеку, иначе система не увидит библиотек. Если библиотеки находятся в новом каталоге, нужно соответствующим образом дополнить файл /etc/ld.so.conf. При установке пакетов с библиотеками эти задачи обычно выполняет менеджер пакетов. |
32- и 64-битные библиотеки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Большинство распространенных дистрибутивов в настоящее время существуют как минимум в двух вариантах сборки: для 32-битных процессоров, совместимых с Intel/AMD, и для 64-битных процессоров, совместимых с Intel/AMD. Разумеется, для 32-битных процессоров предусмотрены только 32-битные библиотеки. Однако, к сожалению, того же нельзя сказать о 64-битных дистрибутивах: были и остаются программы, которые не компилируются для 64-битных систем. Наиболее известная программа такого рода — Acrobat Reader компании Adobe. /lib и /lib64. Для выполнения 32-битных программ в 64-битных дистрибутивах вам потребуются 32-битные библиотеки. Чтобы можно было избежать конфликтов, библиотеки устанавливаются в различные каталоги. Среди-профессионалов в Linux этот метод называется мулътиархитектура, или биархитектура, так как параллельно поддерживается несколько (или две) архитектуры процессоров. В большинстве дистрибутивов встречаются каталоги /lib32 или /lib64, позволяющие не смешивать библиотеки с различной разрядностью. Такая двойственность, разумеется, связана с определенными недостатками: при установке многочисленных библиотек в двух экземплярах тратится больше дискового пространства, кроме того, при этом осложняется техническая поддержка. |