Назад | Перейти на главную страницу

Для сборки файла спецификации rpm требуется более одного критерия

Можно ли указать в файле спецификации rpm, что для сборки вам нужна версия пакета больше и в то же время ниже чем-то?

Например, я хотел бы указать python> = 2.7 и <3.0.

Можно ли это сделать с помощью buildrequires и, если возможно, каков будет синтаксис?

Поскольку я не видел ни одного подобного примера, я думал:

BuildRequires: python >= 2.7
BuildRequires: python < 3.0

Вы указали правильный пример в своем вопросе:

BuildRequires: python >= 2.7
BuildRequires: python < 3.0

это правильный способ сделать это.

Однако вы должны быть осторожны, если используете ту же схему для классического раздела Requires. Если поставить:

Requires: python >= 2.7
Requires: python < 3.0

в вашем spec-файле, а пакет python-3.0 входит в один из ваших репозиториев yum, yum предложит его в качестве обновления, что вызовет проблемы с зависимостями при запуске «yum update». Выполнение прерывается с ошибкой, и единственный способ избежать этого - ввести:

exclude=python-3*

в раздел репо или запустить его с помощью:

yum update --exclude=python

Если вы используете этот подход только для BuildRequires, у вас не будет проблем, если пакет python-3.0 не будет установлен до запуска yum-builddep. В этом случае вам нужно сначала удалить его.