Как проверить зависимости пакета в Ubuntu
Важно: команды ниже не устанавливают пакеты без вашего явного подтверждения, если вы не уберёте флаг симуляции (-s) и не выполните команду установки.

Зависимости — это дополнительные пакеты, которые требуются приложению для корректной работы. В экосистеме Debian/Ubuntu пакеты обычно делают одну вещь и полагаются на другие пакеты для вспомогательных функций. Например, пакет медиаплеера может требовать библиотеки для декодирования аудио и видео; эти библиотеки будут перечислены как зависимости.
Краткое определение терминов:
- Пакет — упакованная программа или библиотека (.deb или пакет из репозитория).
- Зависимость — пакет, необходимый для выполнения другого пакета.
- Обратная зависимость (reverse dependency) — пакеты, которые требуют данный пакет.
Принцип: если несколько приложений требуют одну и ту же библиотеку, система установит её один раз, экономя место и централизуя обновления.
Далее собраны практические способы получить список зависимостей, разобранные по задачам и сценариям использования.
1) Использование APT для быстрой проверки
APT — основной инструмент для работы с пакетами в Ubuntu и Debian-подобных дистрибутивах.
Основная команда для просмотра зависимостей:
sudo apt depends имя_пакетаПример:
sudo apt depends rhythmboxВы увидите список прямых зависимостей, а также секции “Рекомендует” и “Предлагает”. Эти секции помогают понять, какие пакеты можно установить дополнительно для расширенного функционала.
Альтернатива с apt-cache (даёт схожий результат):
sudo apt-cache depends rhythmboxЧтобы посмотреть расширённую информацию о пакете, включая описание, версии и зависимости, используйте show:
sudo apt show rhythmbox
sudo apt-cache show rhythmboxСовет: добавьте | less для постраничного просмотра или перенаправьте вывод в файл для дальнейшего анализа:
sudo apt depends vlc | less
sudo apt depends vlc > vlc-deps.txt2) dpkg для локальных DEB-файлов и установленных пакетов
Если у вас есть локальный DEB-файл и нужно узнать его зависимости без установки:
sudo dpkg -I /путь/к/пакету.deb
sudo dpkg --info /путь/к/пакету.debЭто покажет метаинформацию, включая поле Depends с перечислением зависимостей.
Чтобы узнать список зависимостей уже установленного пакета:
sudo dpkg -s firefoxВы увидите status, версия, описание и поле Depends.
3) apt-rdepends — полный дерево зависимостей
Для полного дерево-зависимостей пригодится apt-rdepends. Установите утилиту, если её нет:
sudo apt install apt-rdependsЗапуск:
apt-rdepends имя_пакетаПример:
apt-rdepends vlcapt-rdepends рекурсивно покажет зависимости зависимостей, формируя иерархическое дерево. Это полезно, когда нужно понять, какие пакеты подтянутся глубже в дереве.
Вы также можете получить обратные зависимости:
apt-rdepends -r libc64) reverse-depends из ubuntu-dev-tools для скриптов и фильтрации
Пакет ubuntu-dev-tools содержит утилиту reverse-depends, удобную для поиска пакетов, которые зависят от указанного.
Установка:
sudo apt install ubuntu-dev-toolsСинтаксис:
reverse-depends опции имя_пакетаПолезные опции:
- -R — показывать только прямые зависимости.
- -s — включать предлагаемые пакеты.
- -l — вывод в удобном для скрипта виде.
Для справки используйте:
reverse-depends -h
reverse-depends --help5) Симуляция установки и удаления для списка неприсутствующих зависимостей
Если вы хотите быстро увидеть, какие дополнительные пакеты будут установлены при установке, выполните симуляцию:
sudo apt install -s phpВ выводе будет секция “The following additional packages will be installed” с перечнем пакетов, которых нет в системе.
Аналогично симуляция удаления покажет, какие пакеты будут удалены вместе с целевым пакетом:
sudo apt remove -s rhythmbox- Пакеты, помеченные как “Depends”, обязательны для работы.
- “Recommends” — сильные рекомендации; без них функциональность может быть ограничена, но пакет всё равно установится.
- “Suggests” — мягкие рекомендации; обычно используются для дополнительных, несущих удобство функций.
- Альтернативы в формате “pkg1 | pkg2” означают, что требуется один из пакетов.
- Экспорт списка зависимостей в файл для сравнения на разных системах:
sudo apt-rdepends pacote | grep -v "^ " > deps-tree.txt- Поиск пакетов, автоматически отмеченных для удаления:
apt-mark showauto- Отметить как вручную установленный пакет, чтобы он не удалялся автоматически:
sudo apt-mark manual имя_пакета- Использовать apt-cache rdepends для быстрого списка обратных зависимостей:
sudo apt-cache rdepends libc6- Snap / Flatpak / AppImage: пакеты в изолированных контейнерах обычно включают все зависимости и не тянутся через системный пакетный менеджер. Подход полезен, если вы хотите избежать глобальных зависимостей или получить более свежие версии.
- Сборка из исходников: при ручной сборке зависимости нужно удовлетворять вручную; полезно для кастомных сборок, но удобство теряется.
Когда APT/DPKG не подойдут:
- Если приложение распространяется как AppImage или Flatpak — зависимости управляются внутри пакета.
- Для контейнеров Docker часто используется минимальный набор зависимостей и другой менеджмент.
Важно проверять не только список зависимостей, но и их безопасность:
- Используйте встроенные обновления безопасности Ubuntu и apt list –upgradable.
- Для критичных систем применяйте сканеры уязвимостей, которые проверяют версии библиотек.
- Устанавливайте пакеты только из доверенных репозиториев.
Примечание: если зависимость имеет известные уязвимости, обновление её может затронуть несколько приложений, поэтому планируйте обходные пути и тестирование.
- Составьте список целевых пакетов (production, тестовые).
- Для каждого пакета получите дерево зависимостей (apt-rdepends).
- Отфильтруйте внешние/приватные репозитории.
- Сравните версии с базой уязвимостей и списком утверждённых версий.
- Обновите пакеты в тестовой среде и проверьте регрессию.
- Документируйте изменения и пометьте пакеты apt-mark.
Для системного администратора:
- Проверить прямые и обратные зависимости перед удалением.
- Использовать симуляцию apt -s для оценки последствий.
- Обновлять и тестировать в staging перед production.
Для разработчика:
- Указывать минимальные версии зависимостей в пакетах.
- Тестировать поведение при отсутствии необязательных рекомендаций.
- Документировать, какие системные пакеты критичны для приложения.
Для пользователя:
- Узнать, какие пакеты будут установлены, с помощью apt depends.
- При сомнении выбирать snap/flatpak для изоляции.
- Сохранять резервные копии конфигураций перед массовыми удалениями.
flowchart TD
A[Нужно увидеть зависимости пакета?] --> B{Пакет в репозитории или локальный DEB?}
B -->|репозитории| C[apt depends или apt-rdepends]
B -->|локальный DEB| D[dpkg -I /путь/к/пакету.deb]
C --> E{Нужны ли обратные зависимости?}
E -->|да| F[apt-rdepends -r или apt-cache rdepends]
E -->|сколько уровней?| G[apt-rdepends — полное дерево]
D --> H{Пакет установлен?}
H -->|да| I[dpkg -s имя_пакета]
H -->|нет| J[dpkg --info /путь/к/файлу.deb]- Ошибка зависимостей при сборке из исходников: установить missing-dev пакеты и библиотеки по списку Depends.
- Конфликт версий: используйте pinning в /etc/apt/preferences.d/ или отдельные репозитории для совместимости.
- Пакет удаляется с зависимостями: перед удалением выполните sudo apt remove -s имя_пакета, чтобы увидеть список.
- Переход с APT на snap/flatpak не удалит автоматически системные зависимости; нужно вручную определить ненужные авто-зависимости.
- При миграции между версиями Ubuntu следите за изменениями в пакетных именах и virtual-пакетах.
- apt: высокоуровневый пакетный менеджер Ubuntu.
- dpkg: низкоуровневый инструмент для .deb пакетов.
- Depends: обязательные зависимости.
- Recommends/Suggests: рекомендованные/предлагаемые пакеты.
- Reverse dependency: пакеты, которые требуют указанный пакет.
# посмотреть прямые зависимости
sudo apt depends vlc
# полное дерево зависимостей
apt-rdepends vlc
# зависимости локального .deb
sudo dpkg -I ./mypackage.deb
# обратные зависимости
sudo apt-cache rdepends libc6
# симуляция установки
sudo apt install -s phpПонимание зависимостей в Ubuntu даёт контроль над тем, какие компоненты становятся частью вашей системы. Для повседневных задач достаточно apt depends и dpkg, а для глубокого аудита — apt-rdepends, reverse-depends и симуляция установки. Комбинация этих инструментов позволяет безопасно обновлять, удалять и отлаживать пакеты в системе.
Ключевые рекомендации:
- Всегда симулируйте критические операции прежде чем выполнять их в production.
- Используйте apt-mark для управления тем, что считается вручную установленным.
- Для изоляции приложений рассматривайте snap/flatpak/AppImage.
Похожие материалы
Отправка фото по e‑mail из Adobe Lightroom
Как удалить Facebook и чем его заменить
Как найти iPhone: Find My в iOS 15 и новее
Включение TLS 1.0 и 1.1 в Windows 11
Как подключить PS4 к Wi‑Fi в гостинице