Можно ли указать в файле спецификации 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. В этом случае вам нужно сначала удалить его.