5.1.1 Возможности

В терминологии RPM каждый пакет предоставляет некоторые возможности. "Возможность" представлена текстовой строкой, которая задана в секции Provides хэдера пакета. В большинстве случаев возможность - это имя файла или имя другого пакета. Но технологически это может быть любая текстовая строка.

Другие пакеты могут зависеть от определенной возможности. Каждый пакет содержит в себе информацию как о предоставляемых возможностях, так и о возможностях, от которых он зависит (секция Requires).

Когда вы устанавливаете пакет, информация о возможностях помещается в БД RPM. Когда вы удаляете пакет, утилита rpm проверяет БД. Если пакет для удаления должен быть удален вместе с некоторыми возможностями, от которых зависят другие пакеты, утилита сгенерирует ошибку и завершит работу. Например:

# rpm -e setup

error: Failed dependencies:

setup is needed by (installed) basesystem-8.0-1

setup >= 2.0.3 is needed by (installed) initscripts-6.95-1

setup >= 2.5.4-1 is needed by (installed) filesystem-2.1.6-5

setup is needed by (installed) xinetd-2.3.7-2

setup is needed by (installed) dump-0.4b28-4

Для проверки того обстоятельства, что пакет в действительности не был удален, можно запросить информацию о нем:

# rpm -q setup

setup-2.5.20-1

Этот пример показывает, что пакет setup не был удален из-за ошибок операции.

Многие возможности, от которых зависят другие пакеты - это системные библиотеки, особенно разделяемые библиотеки. Разделяемые библиотеки, файлы которых имеют обычно расширение .so (от shared object), предоставляют эффективный механизм экономии памяти и разделения кода. Поскольку множество программ зависит от разделяемых библиотек, система RPM умеет автоматически обрабатывать эти зависимости.

Для исследования вопроса об используемых программой библиотеках, применяется команда ldd. Например:

$ ldd /bin/grep

libc.so.6 => /lib/i686/libc.so.6 (0x42000000)

/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Другие зависимости могут содержать специфические требования к номерам версий.

Далее - Зависимости версий
Назад - Введение в концепцию зависимостей
Содержание