Como ligar requer a BuildRequires na especificação rpm?

3

Digamos que eu tenha essas Requires entradas:

Requires: a
Requires: b
Requires: c

e agora eu gostaria de dizer que:

BuildRequires: <<Requires>>

o que significa que para compilação eu preciso de tudo o que é necessário para instalar. Então, se eu remover ou adicionar algo na primeira seção, não precisarei mais editar a segunda, porque ela será "vinculada".

A questão é - como expressar tal dependência?

Eu sei que esse esquema não é bom para pacotes públicos, mas estou pedindo para uso doméstico - preparo pacotes rápidos apenas para mim e minha família, eles não são distribuídos.

    
por greenoldman 09.06.2012 / 11:19

3 respostas

6

A resposta fácil é definir uma macro que seja substituída em ambos os locais.

%define my_common_requires package-1, package-2, package-3

BuildRequires: %{my_common_requires}
Requires:      %{my_common_requires}

Isso também permite definir manualmente algo que precisa estar em uma das duas linhas, mas não em ambas.

    
por 20.12.2012 / 20:55
5

Parece que

BuildRequires:  %{requires}

"apenas funciona" - pelo menos, no RHEL6, em que o RPM é da versão 4.8.0

    
por 27.05.2014 / 21:18
1

Deixe

  1. P é o nome do seu pacote;
  2. R1 , R2 , ..., Rn é necessário
  3. RB1 , RB2 , ..., RBm seja algum dos seus BuildRequires e R1 , R2 , ..., Rn seja o outro Requer.

Agora você pode

  1. Crie um pacote PA com Requer R1 , R2 , ..., Rn que está vazio.
  2. Edite P para que o seu Requer seja PA e seus BuildRequires sejam PA , RB1 , RB2 , ..., RBm

Não estou convencido de que seja uma boa ideia.

MyUsefulPackage
Requires: gcc
BuildRequires: gcc

torna-se

MyUsefulPackage
Requires: MyUsefulRequires
BuildRequires: MyUsefulRequires

e

MyUsefulRequires
Requires: gcc

Se eu quiser adicionar outro pacote make , ele se torna:     MyUsefulPackage     Requer: MyUsefulRequires     BuildRequires: MyUsefulRequires

e

MyUsefulRequires
Requires: gcc
Requires: make

Não é necessário alterar os requisitos de dependências do MyUsefulPackage. Eu posso fazer apenas uma mudança para MyUsefulRequires.

    
por 10.06.2012 / 09:53

Tags