
При работе с Linux часто возникает задача быстро понять, установлен ли конкретный пакет в системе. Это нужно при настройке серверов, установке зависимостей, поиске причин ошибок запуска программ или проверке состояния системы перед обновлением. Способы проверки зависят от дистрибутива и используемого менеджера пакетов, поэтому универсальной команды не существует.
В Debian и Ubuntu информация о пакетах хранится в базе dpkg, в системах на базе Red Hat – в базе rpm, а Arch Linux использует собственный механизм pacman. Каждый из них позволяет не только узнать, установлен ли пакет, но и проверить его версию, статус и список файлов, которые он добавил в систему.
Отдельный подход требуется, если известно только имя команды, а не название пакета. В таких случаях полезно проверять наличие исполняемого файла в системе или определять, какому пакету он принадлежит. Это помогает понять, установлен ли нужный софт полностью или присутствуют лишь отдельные компоненты.
Ниже разобраны практические способы проверки установки пакетов для популярных дистрибутивов Linux. Все команды можно выполнять в обычном терминале без дополнительных инструментов и прав администратора, если не требуется доступ к системным каталогам.
Проверка установленного пакета через dpkg в Debian и Ubuntu
Если требуется получить точные данные по конкретному пакету, используют dpkg -s. Команда dpkg -s nginx возвращает статус, версию, архитектуру и описание. При установленном пакете строка Status: install ok installed присутствует всегда. Если пакет отсутствует, dpkg выведет сообщение об ошибке и вернет ненулевой код завершения.
Поиск пакета с помощью apt list и apt-cache
В Debian и Ubuntu менеджер apt позволяет проверить наличие пакета как среди установленных, так и в доступных репозиториях. Для этого применяются команды apt list и apt-cache, которые работают с локальной базой пакетов.
Для проверки установленного пакета используется фильтрация по статусу:
- apt list —installed nginx – показывает точный результат без поиска по списку.
Для проверки доступности пакета используют поиск без флага —installed:
- apt list nginx – показывает пакет, его версию и источник репозитория.
- apt search nginx – находит пакеты по имени и описанию.
Команда apt-cache дает более детальную информацию без установки пакета:
- apt-cache policy nginx – отображает установленную и доступную версии, а также приоритет источников.
Определение наличия пакета через rpm в CentOS, RHEL и AlmaLinux
В CentOS, RHEL и AlmaLinux сведения об установленных пакетах хранятся в базе rpm. Для прямой проверки используется команда rpm -q имя_пакета. Если пакет установлен, rpm выведет его точное имя с версией и архитектурой, например nginx-1.24.0-1.el9.x86_64.
Если неизвестно точное имя, полезен поиск по списку установленных пакетов: rpm -qa | grep nginx. Такой подход подходит для проверки библиотек и пакетов с длинными или составными названиями.
Если известно имя файла или команды, можно определить, какому пакету он принадлежит: rpm -qf /usr/sbin/nginx. При установленном пакете rpm вернет его название, что подтверждает наличие соответствующего программного компонента.
Команда rpm -q не требует доступа к сети и работает только с локальной базой. Это удобно при проверке системы на минимальных установках или серверах без подключенных репозиториев.
Проверка установки пакета с помощью dnf и yum

Для проверки установленного пакета применяются следующие команды:
- dnf list installed nginx – показывает пакет, если он установлен, с указанием версии и репозитория.
- yum list installed nginx – аналогичная команда для систем с yum.
Если пакет отсутствует, команда выведет сообщение Error: No matching Packages to list. Такой результат означает, что пакет не зарегистрирован как установленный.
Для поиска по всем установленным пакетам без точного имени используется фильтрация списка:
- dnf list installed | grep nginx
- yum list installed | grep nginx
Для получения детальной информации по установленному пакету используется команда:
- dnf info nginx
- yum info nginx
Команды dnf и yum могут обращаться к репозиториям, поэтому при офлайн-проверке предпочтительно использовать флаг —installed или работать через rpm.
Поиск установленного пакета через pacman в Arch Linux

Если пакет не установлен, pacman сообщает error: package ‘имя_пакета’ was not found и возвращает ненулевой код завершения. Это удобно для автоматических проверок в shell-скриптах.
Когда точное имя неизвестно, применяют поиск по списку установленных пакетов: pacman -Qs nginx. Команда ищет совпадения по названию и описанию только среди уже установленных пакетов, что исключает результаты из удалённых репозиториев.
Если известно расположение файла или бинарника, можно определить, какому пакету он принадлежит: pacman -Qo /usr/bin/nginx. Возвращённое имя пакета подтверждает его установку и помогает найти источник конкретного файла.
Проверка наличия исполняемого файла командой which

Пример использования:
which nginx
/usr/sbin/nginx
Если команда не найдена, which возвращает пустую строку и код завершения 1, что позволяет использовать проверку в скриптах.
Дополнительно для анализа можно получить список всех найденных копий команды с помощью whereis:
whereis nginx
Пример структурирования результатов проверки через таблицу:
| Команда | Результат | Статус установки |
|---|---|---|
| nginx | /usr/sbin/nginx | Установлен |
| myapp | Не найдено | Не установлен |
Использование which подходит для проверки утилит и бинарных файлов, установленных через пакеты или компиляцию вручную. Этот метод не зависит от конкретного менеджера пакетов и работает во всех дистрибутивах Linux.
Определение версии установленного пакета через командную строку

Если известно только имя команды, можно использовать прямой вызов с флагом —version или -v, например: nginx -v. Этот способ работает независимо от менеджера пакетов, но показывает версию конкретного исполняемого файла, а не пакета полностью.
Для автоматизации проверок в скриптах полезно использовать комбинацию команды с проверкой кода завершения. Если код равен 0, версия получена успешно; если 1 или другое значение – пакет не найден или не установлен.
Вопрос-ответ:
Как узнать, установлен ли пакет nginx на Ubuntu?
Для проверки используется команда dpkg -l nginx. Если в начале строки отображается статус ii, пакет установлен. Также можно использовать apt list —installed nginx для получения версии и источника репозитория.
Можно ли проверить наличие пакета без знания его точного имени?
Да. В Debian и Ubuntu применяют apt search имя_или_часть_имени для поиска в доступных и установленных пакетах. В Arch Linux используется pacman -Qs часть_имени, а в системах на базе RHEL — dnf list installed | grep часть_имени.
Как определить версию установленного пакета в CentOS?
Через rpm или dnf можно узнать версию. Например, rpm -q nginx покажет полное имя пакета с версией и архитектурой. Через dnf info nginx можно получить дополнительно репозиторий и дату установки.
Что делать, если пакет удалён, но его конфигурационные файлы остались?
dpkg в Ubuntu покажет статус rc при выводе dpkg -l имя_пакета. Это значит, что бинарные файлы отсутствуют, но записи о пакете хранятся в системе. Для полной очистки используют sudo apt purge имя_пакета.
Можно ли проверить установку пакета через наличие исполняемого файла?
Да. Команда which имя_команды покажет путь к бинарнику, если он доступен в $PATH. Например, which nginx вернёт /usr/sbin/nginx, что подтверждает наличие установленного компонента.
Как проверить, установлен ли пакет на Arch Linux?
В Arch Linux для проверки пакета используют pacman -Q имя_пакета. Если пакет установлен, команда вернёт его имя и версию, например nginx 1.26.2-1. Если пакет отсутствует, появится сообщение error: package ‘имя_пакета’ was not found. Для поиска по части названия можно применять pacman -Qs часть_имени.
Можно ли проверить наличие пакета через исполняемую команду?
Да. Если известно имя программы, но не пакета, применяют which имя_команды. Команда возвращает полный путь к бинарнику, например /usr/sbin/nginx, что подтверждает, что соответствующий компонент установлен и доступен в $PATH. Если вывод пустой, пакет не установлен или команда отсутствует в системных каталогах.
