Механизм зависимостей в системе управления пакетами RPM работает следующим образом: 1
- Каждый пакет содержит информацию о необходимых библиотеках, компонентах и версиях, без которых его работа невозможна. 1
- Менеджер пакетов автоматически разрешает эти зависимости, определяя необходимый порядок установки и удаления программ. 1
RPM различает четыре типа зависимостей: 2
- Requirements — случаи, когда пакету требуются возможности, предоставляемые другим пакетом; 2
- Provides — списки пакетов, которые требуют возможностей данного, а он их предоставляет; 2
- Conflicts — случаи, когда пакет конфликтует с возможностями, предоставляемыми другим пакетом; 2
- Obsoletes — случаи, когда возможности данного пакета делают устаревшими возможности другого пакета (обычно бывают, если при смене версии пакет меняет имя). 2
Система версионирования в RPM позволяет точно указывать требуемые версии зависимостей. 1 Например, можно требовать версию «больше или равно» (>=), «меньше» (<), или конкретную версию (=). 1
Также в современных версиях RPM есть так называемые «слабые зависимости» (Weak Dependencies). 1 Они позволяют более гибко описывать взаимосвязи между пакетами. 1 Например, пакет может рекомендовать установку дополнительных компонентов, которые улучшают его функциональность, но не являются строго необходимыми. 1