Для сборки файла спецификации rpm требуется packageX или packageY

Есть ли способ в файле спецификации rpm указать как сборку требования packageX или packageY.

Текущий nodejs 4.1 требует g++>=4.8 или clang++>=3.4, чтобы иметь возможность собрать пакет.

Это только требование для сборки rpm, а не требование пакета для работы после установки. Я не знаю, как это указать, или, если это вообще возможно, с BuildRequires.

2 ответа

Решение

Невозможно указать X или Y со спецификацией об / мин.

Но вы можете указать зависимость от пути к файлу, например:

BuildRequires: /usr/bin/sudo

Затем yum-builddeps будет искать пакет, содержащий конкретный файл. Чтобы это работало, X и Y должны предоставить файл с одинаковым путем.

Node.js зависит от некоторых библиотек. В вашем конкретном случае очень неразумно разрешать собирать node.js только с любым компилятором - вы видите, node.js, как любое другое зависимое от библиотеки программное обеспечение должно быть собрано с тем же семейством компиляторов, как и библиотеки, от которых он зависит., Однако это не строгое правило - все может быть хорошо при использовании разных семейств компиляторов. Но во многих случаях динамический загрузчик не сможет разрешить определенные символы из-за разных алгоритмов искажения символов (а я, например, видел такие случаи), поэтому, если вы не приняли все необходимые меры предосторожности, чтобы исключить эту возможность, вы, вероятно, не должны положиться на это. Поэтому я предполагаю, что ваш spec-файл должен быть более конкретным, или, может быть, вам следует создать несколько srpms для случаев с разными компиляторами.

PS Думаю, этот вопрос лучше подошел бы к порталу SE.

Другие вопросы по тегам