Есть ли способ в файле спецификации rpm указать в качестве требования к сборке packageX или packageY.
Текущий nodejs 4.1 требует g ++> = 4.8 или clang ++> = 3.4 для возможности сборки пакета.
Это только требование для сборки rpm, а не требование, чтобы пакет работал после установки. Я не знаю, как это указать и возможно ли это вообще с помощью BuildRequires.
Невозможно указать X или Y со спецификацией оборотов в минуту.
Но вы можете указать зависимость от пути к файлу, например:
BuildRequires: /usr/bin/sudo
Затем yum-builddeps будет искать пакет, который предоставляет конкретный файл. Чтобы это работало, X и Y должны предоставить файл с одинаковым путем.
Node.js зависит от некоторых библиотек. В вашем конкретном случае очень неразумно разрешать сборку node.js только с любым компилятором - вы видите, node.js, как и любое другое библиотечно-зависимое программное обеспечение, должно быть построено с тем же семейством компиляторов, поскольку библиотеки, от которых оно зависит, построены . Однако это не строгое правило - все может быть в порядке при использовании разных семейств компиляторов. Но во многих случаях динамический загрузчик не сможет разрешить определенные символы из-за различных алгоритмов искажения символов (и я, например, видел такие случаи), поэтому, если вы не предприняли все необходимые меры для исключения этой возможности, вам, вероятно, не следует положитесь на это. Итак, я думаю, ваш файл спецификации должен быть более конкретным, или, возможно, вам следует создать несколько srpms для случаев с разными компиляторами.
P.S. Думаю, этот вопрос лучше подошел бы к порталу SE.