Гид по технологиям

Как проверить зависимости пакета в Ubuntu

6 min read Linux Обновлено 04 Dec 2025
Проверить зависимости пакета в Ubuntu
Проверить зависимости пакета в Ubuntu

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

list dependencies of a package in ubuntu

Зависимости — это дополнительные пакеты, которые требуются приложению для корректной работы. В экосистеме 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

get package dependencies using apt depends

Совет: добавьте | less для постраничного просмотра или перенаправьте вывод в файл для дальнейшего анализа:

sudo apt depends vlc | less
sudo apt depends vlc > vlc-deps.txt

2) dpkg для локальных DEB-файлов и установленных пакетов

Если у вас есть локальный DEB-файл и нужно узнать его зависимости без установки:

sudo dpkg -I /путь/к/пакету.deb
sudo dpkg --info /путь/к/пакету.deb

Это покажет метаинформацию, включая поле Depends с перечислением зависимостей.

Чтобы узнать список зависимостей уже установленного пакета:

sudo dpkg -s firefox

Вы увидите status, версия, описание и поле Depends.

get dependencies of a dpkg package

3) apt-rdepends — полный дерево зависимостей

Для полного дерево-зависимостей пригодится apt-rdepends. Установите утилиту, если её нет:

sudo apt install apt-rdepends

Запуск:

apt-rdepends имя_пакета

Пример:

apt-rdepends vlc

apt-rdepends рекурсивно покажет зависимости зависимостей, формируя иерархическое дерево. Это полезно, когда нужно понять, какие пакеты подтянутся глубже в дереве.

Вы также можете получить обратные зависимости:

apt-rdepends -r libc6

apt-rdepends get dependency information

4) 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 --help

5) Симуляция установки и удаления для списка неприсутствующих зависимостей

Если вы хотите быстро увидеть, какие дополнительные пакеты будут установлены при установке, выполните симуляцию:

sudo apt install -s php

В выводе будет секция “The following additional packages will be installed” с перечнем пакетов, которых нет в системе.

Аналогично симуляция удаления покажет, какие пакеты будут удалены вместе с целевым пакетом:

sudo apt remove -s rhythmbox

dependencies using simulated install

  • Пакеты, помеченные как “Depends”, обязательны для работы.
  • “Recommends” — сильные рекомендации; без них функциональность может быть ограничена, но пакет всё равно установится.
  • “Suggests” — мягкие рекомендации; обычно используются для дополнительных, несущих удобство функций.
  • Альтернативы в формате “pkg1 | pkg2” означают, что требуется один из пакетов.
  1. Экспорт списка зависимостей в файл для сравнения на разных системах:
sudo apt-rdepends pacote | grep -v "^ " > deps-tree.txt
  1. Поиск пакетов, автоматически отмеченных для удаления:
apt-mark showauto
  1. Отметить как вручную установленный пакет, чтобы он не удалялся автоматически:
sudo apt-mark manual имя_пакета
  1. Использовать apt-cache rdepends для быстрого списка обратных зависимостей:
sudo apt-cache rdepends libc6
  • Snap / Flatpak / AppImage: пакеты в изолированных контейнерах обычно включают все зависимости и не тянутся через системный пакетный менеджер. Подход полезен, если вы хотите избежать глобальных зависимостей или получить более свежие версии.
  • Сборка из исходников: при ручной сборке зависимости нужно удовлетворять вручную; полезно для кастомных сборок, но удобство теряется.

Когда APT/DPKG не подойдут:

  • Если приложение распространяется как AppImage или Flatpak — зависимости управляются внутри пакета.
  • Для контейнеров Docker часто используется минимальный набор зависимостей и другой менеджмент.

Важно проверять не только список зависимостей, но и их безопасность:

  • Используйте встроенные обновления безопасности Ubuntu и apt list –upgradable.
  • Для критичных систем применяйте сканеры уязвимостей, которые проверяют версии библиотек.
  • Устанавливайте пакеты только из доверенных репозиториев.

Примечание: если зависимость имеет известные уязвимости, обновление её может затронуть несколько приложений, поэтому планируйте обходные пути и тестирование.

  1. Составьте список целевых пакетов (production, тестовые).
  2. Для каждого пакета получите дерево зависимостей (apt-rdepends).
  3. Отфильтруйте внешние/приватные репозитории.
  4. Сравните версии с базой уязвимостей и списком утверждённых версий.
  5. Обновите пакеты в тестовой среде и проверьте регрессию.
  6. Документируйте изменения и пометьте пакеты 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.

check package dependencies using apt show

using dpkg to get dependencies of a package

reverse dependencies using apt-rdepends

dependencies information using a simulated removal

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Отправка фото по e‑mail из Adobe Lightroom
Фото

Отправка фото по e‑mail из Adobe Lightroom

Как удалить Facebook и чем его заменить
Социальные сети

Как удалить Facebook и чем его заменить

Как найти iPhone: Find My в iOS 15 и новее
Безопасность мобильных

Как найти iPhone: Find My в iOS 15 и новее

Включение TLS 1.0 и 1.1 в Windows 11
Безопасность

Включение TLS 1.0 и 1.1 в Windows 11

Как подключить PS4 к Wi‑Fi в гостинице
Гайды

Как подключить PS4 к Wi‑Fi в гостинице

Fix Cxuiusvc: устранение высокой загрузки ЦП
Windows

Fix Cxuiusvc: устранение высокой загрузки ЦП