Введение
В этом лабораторном занятии вы узнаете, как проверить, установлена ли определенная библиотека на вашей системе Linux. Вы изучите различные методы для достижения этой цели, начиная с перечисления доступных общих библиотек с помощью команды ldconfig -p, чтобы понять, какие библиотеки есть в системе и где они расположены.
Затем вы будете использовать команду dpkg -l для определения пакета, связанного с конкретной библиотекой, что позволит вам понять, как библиотеки управляются в пакетном менеджере системы. Наконец, вы узнаете, как напрямую проверить общие каталоги библиотек, такие как /usr/lib, чтобы вручную убедиться в наличии файлов библиотек.
Перечислить библиотеки с помощью ldconfig -p
На этом этапе вы узнаете, как перечислить доступные общие библиотеки на вашей системе Linux с использованием команды ldconfig.
Общие библиотеки (shared libraries) — это наборы кода, которые могут использовать несколько программ. Это экономит место на диске и память, так как код не нужно дублировать в каждой программе.
Команда ldconfig в основном используется для настройки динамических связываний во время выполнения. При использовании с опцией -p она выводит список каталогов и кандидатов на библиотеки, которые хранятся в кэше.
Если терминал еще не открыт, откройте его. Для этого нажмите на значок Xfce Terminal слева на рабочем столе.
Теперь введите следующую команду и нажмите Enter:
ldconfig -p
Эта команда выведет длинный список общих библиотек, найденных на вашей системе. Вывод будет выглядеть приблизительно так:
...
libzstd.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libzstd.so.1
libz.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libz.so.1
libxml2.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so.2
libxml2.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so
libxslt.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libxslt.so.1
...
В выводе показаны имя библиотеки, архитектура, для которой она была создана (например, x86-64), и путь к файлу библиотеки в системе.
Поскольку вывод очень длинный, вы, возможно, захотите передать его в постраничный просмотрщик, например less, чтобы просматривать его по одной странице. Для этого используйте символ конвейера |:
ldconfig -p | less
Нажмите пробел, чтобы прокрутить страницу вниз, b — чтобы прокрутить вверх, и q — чтобы выйти из less.
Эта команда полезна для определения, какие библиотеки доступны и где они расположены.
Нажмите Продолжить, чтобы перейти к следующему шагу.
Проверить пакет библиотеки с помощью dpkg -l
На предыдущем этапе вы перечислили общие библиотеки. Теперь давайте узнаем, как определить, к какому пакету относится конкретная библиотека, используя команду dpkg.
dpkg — это пакетный менеджер для систем на основе Debian, таких как Ubuntu. Он используется для установки, удаления и управления пакетами .deb. Опция -l выводит список установленных пакетов.
Для поиска конкретного пакета мы можем объединить dpkg -l с grep для фильтрации вывода. Давайте поищем пакеты, связанные с библиотекой xml2, которую мы увидели в выводе команды ldconfig -p.
Введите следующую команду в терминале и нажмите Enter:
dpkg -l | grep xml2
Эта команда выводит список всех установленных пакетов (dpkg -l), а затем фильтрует этот список, чтобы показать только строки, содержащие "xml2" (grep xml2).
Вы должны увидеть вывод, похожий на следующий:
ii libxml2:amd64 <version> amd64 GNOME XML library
ii libxml2-dev:amd66 <version> amd64 Development files for the GNOME XML library
...
Вывод содержит информацию о пакете:
- Первые два символа (
ii) указывают на статус пакета (установлен). - Имя пакета (например,
libxml2:amd64). - Номер версии.
- Архитектура (например,
amd64). - Краткое описание пакета.
Это мощный способ определить, какой программный пакет предоставляет определенный файл библиотеки. Это очень полезно для устранения неполадок или понимания зависимостей.
Нажмите Продолжить, чтобы перейти к следующему этапу.
Проверить библиотечные файлы в /usr/lib
На этом последнем этапе давайте исследуем каталог, где хранится множество общих библиотек: /usr/lib.
В системе Linux каталог /usr содержит программы и данные для пользователей. Подкаталог /usr/lib в частности хранит общие библиотеки, которые не являются обязательными для загрузки системы, но необходимы для работы приложений.
Сначала изменим текущий каталог на /usr/lib. Для этого используем команду cd.
Введите следующую команду и нажмите Enter:
cd /usr/lib
Теперь вы находитесь внутри каталога /usr/lib. Чтобы увидеть содержимое этого каталога, используйте команду ls. Поскольку в этом каталоге находится много файлов, мы снова передадим вывод в less.
Введите следующую команду и нажмите Enter:
ls | less
Вы увидите длинный список файлов и каталогов. Многие файлы, оканчивающиеся на .so, являются общими библиотеками. Также вы можете увидеть каталоги, такие как x86_64-linux-gnu, которые содержат библиотеки, специфичные для данной архитектуры.
Нажмите пробел, чтобы прокрутить вниз, и q, чтобы выйти из less.
Давайте найдем файл библиотеки libxml2, о которой мы говорили на предыдущих этапах. Мы можем использовать ls с grep, чтобы найти его в текущем каталоге (/usr/lib).
Введите следующую команду и нажмите Enter:
ls | grep libxml2
Вы должны увидеть вывод, похожий на следующий, показывающий файлы библиотеки libxml2 и символические ссылки:
libxml2.so
libxml2.so.2
libxml2.so.2.<version>
Файлы с расширением .so — это реальные общие библиотеки, а файлы без номера версии (например, libxml2.so) часто являются символическими ссылками, указывающими на реальный файл библиотеки с номером версии.
Вы можете использовать команду readlink, чтобы узнать, куда указывает символическая ссылка. Например:
readlink libxml2.so
Это покажет вам реальный файл, на который указывает libxml2.so, включая полный номер версии.
libxml2.so.2
На этом этапе вы узнали, как перейти в общий каталог библиотек и просмотреть его содержимое с помощью команд cd, ls и grep. Понимание того, где хранятся библиотеки, является важной частью системного администрирования и разработки.
Нажмите Продолжить, чтобы завершить лабораторную работу.
Резюме
В этой лабораторной работе вы узнали, как проверить, установлена ли библиотека в системе Linux, используя несколько методов. Вы начали с перечисления доступных общих библиотек и их мест расположения с помощью команды ldconfig -p, поняв ее роль в управлении привязками динамического загрузчика.
Затем вы изучили, как определить, к какому пакету относится конкретная библиотека, используя команду dpkg -l, которая является важным инструментом для управления пакетами Debian. Наконец, вы научились напрямую просматривать общие каталоги библиотек, такие как /usr/lib, чтобы вручную проверить наличие файлов библиотек. Эти шаги предоставляют комплексный подход к определению статуса установки библиотек в системе Linux.



