rpm macros no CentOS 6.5

2

Tentando criar um arquivo de especificação para um sistema CentOS 6.5. O rpm deve verificar a liberação para adicionar linhas requer específicas: com base na versão do SO .... e não funciona de forma alguma:

Snippet do arquivo de especificações:

%if 0%{?rhel} == 6
Requires: packageName
%endif
%description
Check dependencies and make OS modifications. 

%files

/etc/rpm/macros.dist:

# dist macros.

%rhel 6
%centos 6
%centos_ver 6
%dist .el6
%el6 1

De acordo com muitas páginas da Web que eu já estive, o código deve funcionar, mas eu nunca recebo uma mensagem que packageName é necessário ao instalar o rpm ... O que estou perdendo aqui ??

UPDATE ...

Reinstalei meu sistema e tudo funciona bem agora. Algo deve ter estragado meu ambiente no meu sistema de teste ... Meu código original agora funciona

    
por GoinOff 22.07.2014 / 22:46

1 resposta

4

%{?rhel} expandirá para 6 . Portanto, 0%{?rhel} expandirá para 06 e não deverá corresponder a 6 .

Você provavelmente quer:

%if 0%{?rhel}
   Requires: packageName
%endif
%description
Check dependencies and make OS modifications. 

%files

Isso expandirá para 0 if %{rhel} não definido e será expandido para 06 se estiver definido. Em spec-file-land, 0 é um valor falso e 06 é um valor verdadeiro.

Ou, se você quiser corresponder apenas ao RHEL / CENTOS 6.X (em vez de usar todos os RHELs / CENTOSs), use-o seguindo a mesma lógica acima:

%if 0%{?el6}
   Requires: packageName
%endif
%description
Check dependencies and make OS modifications. 

%files
    
por 22.07.2014 / 23:13

Tags