Основной синтаксис именования зависимостей:
Requires: capability |
где capability, как правило, имя другого пакета. В данном примере тип зависимости - Requires, то есть те возможности, которые нужны нашему пакету. Для всех других типов зависимостей строки будут выглядеть похоже:
Provides: capability |
Для добавления группы зависимостей их разделяют пробелом, или запятой и пробелом:
Requires: bash perl |
10.1.1.1 Версии зависимостей
Часто бывает необходимо уточнить версию зависимости, например:
Conflicts: bash >= 2.0 |
Запись в строке говорит о том, что пакет будет конфликтовать с любым пакетом bash, чья версия 2.0 или выше.
В таблице приводятся различные случаи сравнения версий:
Тип сравнения |
Что значит |
package < version |
Пакет со значением версии меньше, чем version |
package > version |
Пакет со значением версии больше, чем version |
package >= version |
Пакет со значением версии больше или равной version |
package <= version |
Пакет со значением версии меньше или равной version |
package = version |
Пакет со значением версии, в точности равной version |
package |
Пакет под именем package любой версии |
При сравнении версий RPM поддерживает и расширенные номера, в стиле Эпоха: Версия-Релиз, например:
1:5.6.0-17 |
Очень часто для сравнения требуется только версия. Эпоха может помочь в случае сложных номеров версий, а релиз почти никогда не используется, за исключением случаев, когда зависимость привязана к конкретной сборке.
10.1.1.2 Создание виртуальных возможностей
Зависимости базируются на возможностях, в большинстве случаев возможность предоставляется пакетом. Но можно создать так называемые виртуальные возможности, которые представляют собой абстрактные имена. Например, пакет sendmail предоставляет функциональность smtp-сервера и в пакете этот факт представлен виртуальной возможностью, названной smtpdaemon. Например:
Provides: smtpdaemon |
Данная возможность ссылается на функционал SMTP этого пакета. Допустим, ряд программ нуждается в отправке писем во время своей работы, причем все равно, через какой почтовый сервис. Тогда, указав в соответствующих пакетах виртуальную возможность smtpdaemon, разработчик сделает допустимым установку пакета с такими программами в систему, в которой есть какой-либо из smtp-сервисов (если укажет в Requires параметр smtpdaemon), причем неважно, какой именно.
10.1.1.3 Зависимости от скриптовых движков и модулей
Скриптовые языки, такие, как Perl или Tcl, поддерживают модули расширения (add-ons). Разрабатываемый пакет может зависеть от такого модуля. RPM использует специальный синтаксис с использованием круглых скобок для указания модуля интерпретируемого языка. Например:
Requires: perl(Carp) >= 3.2 |
Такая строка указывает на потребность пакета в модуле Carp языка Perl версии 3.2 или выше.
Далее - Установка предварительных требований
Назад - Зависимости
Содержание