На сайте Ubuntu есть три зависимости, перечисленные для пакета Python. Однако, когда я использую apt-get install python
, устанавливаются шесть дополнительных пакетов.
Итак, пакеты Ubuntu говорят, что мне нужно: libpython-stdlib, python-minimal и python2.7
И apt-get говорит, что мне нужно: libpython-stdlib, libpython2.7-minimal , libpython2.7-stdlib, python-minimal, python2.7 и python2.7-minimal
Откуда эта разница? Какую ссылку я бы использовал, чтобы узнать, какие дополнительные пакеты будут установлены до того, как я наберу команду apt-get install ...
.
Это рекурсивные зависимости.
График зависимостей (нарисованный вручную и поэтому чрезмерно упрощенный, включающий только упомянутые вами пакеты) будет выглядеть примерно так:
python
├── libpython-stdlib
│ └── libpython2.7-minimal
├── python2.7
│ ├── libpython2.7-stdlib
│ └── python2.7-minimal
└── python-minimal
└── python2.7-minimal
Видите ли, каждая зависимость - это просто обычный пакет, который может иметь больше собственные зависимости. Вы можете получить эту информацию на https://packages.ubuntu.com , щелкнув ссылки всех пакетов зависимостей (с красной точкой) и повторив их рекурсивно для каждой записи. К сожалению, это утомительное занятие.
Самый простой способ узнать, какие пакеты нужно установить, - это просто запустить команду sudo apt install PACKAGE
и посмотреть на ее вывод. Или, если вы хотите быть в безопасности, пока ничего не происходит, и вы просто получаете информацию, вы можете только смоделировать установку:
apt -s install PACKAGE
Существует также apt depends PACKAGE
для перечисления прямых зависимостей (и других отношений) пакетов , но если вы добавите --recurse
и для получения косвенных зависимостей, список станет слишком длинным, чтобы его можно было прочитать, так как вдоль него отображаются тонны дубликатов и ненужных записей. --important
немного помогает в этом, но не слишком сильно. Также имейте в виду, что обычно у вас уже установлены многие из этих зависимостей, потому что от этого зависит что-то другое, так что опять же это не скажет вам, что вам нужно установить дополнительно.