a compilação do arquivo de especificação rpm requer packageX ou packageY [closed]

2

Existe uma maneira no arquivo de especificação de rpm para especificar como pacote de requisitos de compilação ou packageY.

O atual nodejs 4.1 requer g ++ > = 4.8 ou clang ++ > = 3.4 para poder compilar o pacote.

Este é apenas um requisito para construir o rpm e não um requisito do pacote para funcionar após a instalação. Eu não sei como especificar isso ou se é possível com BuildRequires.

    
por paulsm25 19.09.2015 / 16:45

2 respostas

1

Não é possível especificar X ou Y com especificação de rpm.

Mas, o que você pode fazer é especificar a dependência em um caminho de arquivo, por exemplo:

BuildRequires: /usr/bin/sudo

O yum-builddeps irá procurar por um pacote que forneça o arquivo específico. Para que isso funcione, X e Y precisam fornecer um arquivo com o mesmo caminho.

    
por 19.09.2015 / 20:10
0

O Node.js depende de algumas bibliotecas. Em seu caso específico, é muito insensato permitir a criação de node.js com qualquer compilador - veja, node.js, já que qualquer outro software dependente de biblioteca deve ser construído com o mesmo compilador familey, já que as bibliotecas das quais ele depende são construídas . Esta não é a regra estrita, no entanto - tudo pode ser OK ao usar diferentes famílias de compiladores. Mas, em muitos casos, o carregador dinâmico não conseguirá resolver símbolos específicos devido a diferentes algoritmos de mangling de símbolos (e eu, por exemplo, vi tais casos), portanto, a menos que você tenha tomado todas as precauções necessárias para excluir essa possibilidade, você provavelmente não deve confiar nisso. Então eu acho que o seu arquivo de especificação deve ser mais específico, ou você deve criar vários srpms para casos com compiladores diferentes.

P.S. Eu acho que essa pergunta se encaixaria melhor no portal da SE.

    
por 19.09.2015 / 18:13

Tags