Red Hat Training

A Red Hat training course is available for RHEL 8

4.2. Mais sobre macros

Esta seção cobre Macros RPM embutidos selecionados. Para uma lista exaustiva de tais macros, consulte a Documentação RPM.

4.2.1. Definindo suas próprias macros

A seção seguinte descreve como criar uma macro personalizada.

Procedimento

  • Inclua a seguinte linha no arquivo RPM SPEC:

    %global <nome INTERNGREGUNA-[(opts)] <corpo>[(opts)] <corpo-

Todo o espaço em branco ao redor de \ é removido. O nome pode ser composto de caracteres alfanuméricos e o caractere _ e deve ter pelo menos 3 caracteres de comprimento. A inclusão do campo (opts) é opcional:

  • Simple macros não contém o campo (opts). Neste caso, apenas a expansão recursiva das macros é realizada.
  • Parametrized macros contém o campo (opts). A seqüência opts entre parênteses é passada para getopt(3) para argc/argv processamento no início de uma invocação macro.
Nota

Os arquivos RPM SPEC mais antigos usam o padrão macro fine <name> <body>. As diferenças entre as macros fine e %global são as seguintes:

  • fine tem alcance local. Ela se aplica a uma parte específica de um arquivo da SPEC. O corpo de uma macro fine é expandido quando usada.
  • %global tem escopo global. Aplica-se a todo um arquivo da SPEC. O corpo de uma macro %global é expandido no momento da definição.
Importante

As macros são avaliadas mesmo se forem comentadas ou se o nome da macro for dado na seção %changelog do arquivo da SPEC. Para comentar uma macro, use %%. Por exemplo: %%global.

Recursos adicionais

Para informações abrangentes sobre as capacidades de macros, consulte a Documentação RPM.