rpm spec-файл требует более одного критерия
Можно ли указать в файле спецификации rpm, что для сборки вам нужна версия пакета, большая и в то же время ниже чем-то?
Например, я хотел бы указать python >= 2.7 и < 3.0.
Можно ли это сделать с помощью buildrequires и если это возможно, какой будет синтаксис?
Поскольку я не видел ни одного подобного примера, я думал о:
BuildRequires: python >= 2.7
BuildRequires: python < 3.0
1 ответ
Вы поставили правильный пример в свой вопрос, это:
BuildRequires: python >= 2.7
BuildRequires: python < 3.0
это правильный способ сделать это.
Тем не менее, вы должны быть осторожны, если вы используете ту же схему для классического раздела Требуется. Если вы положите:
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. В этом случае вам нужно сначала удалить его.