SPEC% arquivos atributo e variáveis do shell

4

Eu tenho um arquivo de especificações que descompacta uma biblioteca que é implantada no local que é exportado no shell.

ou seja

%file
${AXIS2_C}/bin/services/services.xml

Isso falha com:

error: File not found: root/rpmbuild/BUILDROOT/i386/${AXIS2_C}/bin/services/services.xml

Ou seja, a variável shell não é expandida. Existe alguma maneira de contornar isso?

Obrigado!

    
por Ricko M 28.01.2011 / 18:17

2 respostas

6

Infelizmente, nada definido no shell iniciado pelas seções% prep,% build ou% install não é preservado no ambiente de criação. Você precisaria definir% {AXIS2_C}, uma variável MACRO (não uma variável shell):

%define AXIS2_C /usr/local/something

e, em seguida, consulte-o em ambas as suas conchas como

make whatever FOO=%{AXIS2_C} # or however you used the env variable

e, em seguida, na seção% files, use

%file
%{AXIS2_C}/bin/services/services.xml

Normalmente, o% define inicial está no topo do arquivo de especificações, com alguma documentação sobre o que é. Se você precisar definir dinamicamente a macro, terá que usar comandos mais complexos de macro de especificação de RPM, como% (), para fazer expansões de shell.

    
por 28.01.2011 / 18:48
0

O que acontece se você não o anexar em { } e usar somente " "

%file
"$AXIS2_C"/bin/services/services.xml

(ou mesmo sem " " )

    
por 28.01.2011 / 18:26