Ответы:
Да, это очень легко сделать.
Просто пиши:
Requires: somepackage >= 0.5.0, somepackage < 0.6.0
в ваш .spec
файл.
Добавление требований к версии
Когда пакет имеет немного более строгие требования, возможно, потребуются определенные версии пакета. Все, что нужно, это добавить желаемый номер версии, которому предшествует один из следующих операторов сравнения:
Требуется пакет с версией меньше указанной версии.
Требуется пакет с версией, меньшей или равной указанной версии.
Требуется пакет с версией, равной указанной версии.
Требуется пакет с версией, равной или большей указанной версии.
Требуется пакет с версией, превышающей указанную версию.
Продолжая наш пример, давайте предположим, что требуемая версия панели пакетов должна быть как минимум 2.7, и что пакет baz должен быть версии 2.1 - никакая другая версия не подойдет. Вот как будет выглядеть строка тега require: require: bar> = 2.7, baz = 2.1
Источник: http://rpm.org/user_doc/more_dependencies.html
Описанная выше система работает для большинства пакетов; однако, если пакет, который вы хотите запросить, предоставляется как [виртуальная возможность] [1] или предоставляется иным образом (т. е. ключевое слово «Provides:») пакетами с разными именами (которые не конфликтуют друг с другом), то вы может иметь два установленных пакета, каждый из которых индивидуально удовлетворяет одному из ваших требований. Например, если ваш спецификационный файл содержит:
Requires: postgresql-server >= 8.4, postgresql-server < 9.0
Может привести к (если эти пакеты доступны для yum) установки:
Но не установит postgresql84-сервер, который, вероятно, является пакетом, который вы ожидали установить.
(В этом случае решение будет просто потребовать postgresql84-сервер; однако, есть и другие примеры, которые не имеют простого решения.)
Мне не ясно, пытаетесь ли вы создать пакет или установить пакет и «ограничить» его зависимости.
Я не вижу способа сделать второй случай без перекомпоновки пакета.
Вы можете извлечь SRPM и отредактировать файл спецификации, а также добавить / изменить запись Требуется (вам нужен пакет 0.5.x, не так ли?) Примерно так:
Requires: somepackage = 0.5.0
а затем восстановить с
rpmbuild -bb -v yourpackage.spec
Если вы никогда этого не делали, это кажется пугающим, но это решает вашу проблему. Имейте в виду, что если вы создаете общедоступный пакет для дистрибутива, вы можете прочитать его руководство, поскольку устанавливать зависимости таким образом обычно не рекомендуется.