Как проверить, установлена ли библиотека в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном занятии вы узнаете, как проверить, установлена ли определенная библиотека на вашей системе Linux. Вы изучите различные методы для достижения этой цели, начиная с перечисления доступных общих библиотек с помощью команды ldconfig -p, чтобы понять, какие библиотеки есть в системе и где они расположены.

Затем вы будете использовать команду dpkg -l для определения пакета, связанного с конкретной библиотекой, что позволит вам понять, как библиотеки управляются в пакетном менеджере системы. Наконец, вы узнаете, как напрямую проверить общие каталоги библиотек, такие как /usr/lib, чтобы вручную убедиться в наличии файлов библиотек.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/InputandOutputRedirectionGroup -.-> linux/pipeline("Data Piping") linux/PackagesandSoftwaresGroup -.-> linux/software("Linux Software") subgraph Lab Skills linux/ls -.-> lab-558728{{"Как проверить, установлена ли библиотека в Linux"}} linux/less -.-> lab-558728{{"Как проверить, установлена ли библиотека в Linux"}} linux/cd -.-> lab-558728{{"Как проверить, установлена ли библиотека в Linux"}} linux/grep -.-> lab-558728{{"Как проверить, установлена ли библиотека в Linux"}} linux/pipeline -.-> lab-558728{{"Как проверить, установлена ли библиотека в Linux"}} linux/software -.-> lab-558728{{"Как проверить, установлена ли библиотека в Linux"}} end

Перечисление библиотек с помощью 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.