Как я могу указать два элемента BuildRequires в специальном файле, где 2-й зависит от устанавливаемого 1-го?

#rpm #rpm-spec

#rpm #rpm-спецификация

Вопрос:

Я пытаюсь создать RPM, в котором есть два элемента BuildRequires; первый — это RPM репозитория, который является источником 2-го RPM. Второй элемент BuildRequires, очевидно, зависит от первого установленного репозитория, но оба устанавливаются вместе, следовательно, второй RPM не получен из требуемого репозитория, поскольку он еще не установлен. Могу ли я настроить так, чтобы первый был установлен, прежде чем пытаться установить второй?

 BuildRequires:  source-for-second-rpm
BuildRequires:  second-rpm

....

Getting requirements for /root/rpmbuild/SPECS/stuff.spec
 --> source-for-second-rpm
 --> 1:second-rpm     < this is not the correct version as above not yet installed

....

Installing:
 second-rpm                sourced-from-other-repository!
 source-for-second-rpm     sourced-correctly
  

Ответ №1:

Нет, в файлах спецификации RPM для этого пока нет такого положения. И все же ты можешь сделать одну вещь:-

а) Сначала установите исходный код для второго rpm.
б) Установите этот RPM, который вы только что создали.

Примечание: — Не указывайте source-for-second-rpm как зависимость вашего RPM.

Допустим, я хочу создать RPM с именем abc.rpm, и он зависит от python36. Теперь пакеты python36 доступны в репозитории epel-release.

Итак, вам нужно сделать следующее:-
а) yum install epel-release
б) yum install abc.rpm

Ответ №2:

Это означает, что зависимости неправильно установлены в этих двух rpm.

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

Комментарии:

1. Первый — это репозиторий, из которого я могу получить требуемую версию 2-го RPM. Это не обязательно требование.

2. Если подумать дальше, то можно перенести установку второго rpm в раздел %prep, т.Е. yum-config-manager —enable <источник для второгоrpm-repo> amp;amp; yum install -y second-rpm — это способ сделать это.

3. Боюсь, вы используете файлы спецификаций не так, как они предназначены для использования. У вас должен быть файл спецификации в ваших исходных текстах и создаваться таким образом…

4. То, что вы говорите, правильно. Я работаю в среде CICD, которая в настоящее время не имеет правильной настройки, поэтому я работаю над некоторыми проблемами.