В терминологии RPM каждый пакет предоставляет некоторые возможности. "Возможность" представлена текстовой строкой, которая задана в секции Provides хэдера пакета. В большинстве случаев возможность - это имя файла или имя другого пакета. Но технологически это может быть любая текстовая строка.
Другие пакеты могут зависеть от определенной возможности. Каждый пакет содержит в себе информацию как о предоставляемых возможностях, так и о возможностях, от которых он зависит (секция Requires).
Когда вы устанавливаете пакет, информация о возможностях помещается в БД RPM. Когда вы удаляете пакет, утилита rpm проверяет БД. Если пакет для удаления должен быть удален вместе с некоторыми возможностями, от которых зависят другие пакеты, утилита сгенерирует ошибку и завершит работу. Например:
# rpm -e setup |
Для проверки того обстоятельства, что пакет в действительности не был удален, можно запросить информацию о нем:
# rpm -q setup |
Этот пример показывает, что пакет setup не был удален из-за ошибок операции.
Многие возможности, от которых зависят другие пакеты - это системные библиотеки, особенно разделяемые библиотеки. Разделяемые библиотеки, файлы которых имеют обычно расширение .so (от shared object), предоставляют эффективный механизм экономии памяти и разделения кода. Поскольку множество программ зависит от разделяемых библиотек, система RPM умеет автоматически обрабатывать эти зависимости.
Для исследования вопроса об используемых программой библиотеках, применяется команда ldd. Например:
$ ldd /bin/grep |
Другие зависимости могут содержать специфические требования к номерам версий.
Далее - Зависимости версий
Назад - Введение в концепцию зависимостей
Содержание