next up previous contents
Next: Зависимости сборки Up: Система зависимостей Debian Previous: Система зависимостей Debian   Contents

Зависимости бинарных пакетов

Бинарные пакеты могут для свой корректной работы требовать наличия других, отсутствия других, а также рекомендовать к установке другие пакеты, вместе с которыми данные будут обеспечивать большую функциональность.
Depends
Абсолютная зависимость. Пакет не будет сконфигурирован до тех пор, пока перечисленные пакеты не будут корректно сконфигурированы.
Pre-Depends
Также абсолютная зависимость, но более строгая. Не будет начинаться даже инсталляция пока эта зависимость не будет удовлетворена (необходима, если пакет используется, скажем, в инсталляционных скриптах)
Recomends
Строгая, но не абсолютная зависимость. Перечисляет пакеты, которые должны быть установлены с данным, кроме случаев необычных инсталляций. Например, kernel-sources настоятельно рекомендуют устанавливать gcc.
Suggests
Зависимость указывает на пакеты, не на шутку расширяющие функциональность данного. Например, те же kernel-sources указывают тут ncurses-dev так как конфигурировать с помощью make config не слишком весело.
Enchances
Имеет обратный смысл предыдущего. Перечисляет пакеты, функциональность которых расширяет данный пакет.
Conflicts
Указывает пакеты, вместе с которыми данный работать не может. Например, на машине может быть только один MTA, поэтому exim конфликтует с mail-transport-agent.
Replaces
Указывает пакеты, файлы которых заменяет. Если заменяет все файлы пакета, по пакет становится disappeared и помечается для удаления. Этим пользуются чтобы спровоцировать удаление конфликтующего пакета:
Provides: mail-transport-agent

Conflicts: mail-transport-agent

Replaces: mail-transport-agent

Provides
В debian существует система так называемых виртуальных пакетов. Большинство программ являются представителями какого либо класса (например, exim, sendmail, postfix - MTA). Поэтому в пакете, представляющем программу, полезно указать этот класс в поле Provides. Теперь, если какому-либо пакету необходима подобная функциональность, он может в поле Depends указать лишь название класса5 вместо того, чтобы перечислять все программы дистрибутива с подобной функциональностью. Так как физически не существует пакетов с такими именами, они называются виртуальными.


Zhenja Kaluta 2002-12-12