Empaquetat RPM. Part 2: teoria dels fitxers SPEC

La màgia dels RPM és que en un sol fitxer SPEC s'inclouen totes les instruccions per construir un paquet. Això sí, primer cal entendre-ho, i de vegades no és fàcil ...

Què és el fitxer SPEC?

Bàsicament, és el fitxer en el qual s'indica com construir, instal·lar i desinstal·lar el paquet.

Les instruccions que anem a donar-li es divideixen per etapes, que al seu torn són macros. Aquestes són les etapes bàsiques que hi ha:

  1. % prep: Es descomprimeixen les fonts i se li apliquen els pegats.
  2. % build: Es compilen els binaris.
  3. % check: Es comprova que s'hagi compilat bé.
  4. % install: Es realitza el simulacre d'instal·lació.
  5. % files: Llista tots els fitxers que apareixeran en el paquet. Se sol utilitzar també per assignar atributs. Si hi ha algun fitxer que no està llistat, no es construirà.

Alguns SPEC pot ser que no tinguin algunes de les etapes. No són d'ús obligatori.

Hi ha altres etapes que es diuen scriptlets. són especials perquè no s'executen en el moment de la construcció del paquet, sinó quan s'instal·la o desinstal. Fins i tot pots programar que s'executi un trigger quan s'instal·li un altre paquet. Aquesta és una de les grans avantatges que té RPM sobre els fitxers DEB.

El gran embolic dels RPM és que té la mateixa sintaxi per a tot. És a dir, totes aquestes paraules especials precedides d'un signe de percentatge (%) Són macros de RPM, però hi ha macros de tot tipus:

  • Funcions (% setup,% configuri,% patch ...)
  • Variables predefinides (% _bindir,% dist ...)
  • Variables definides en el propi SPEC (% buildroot,% name,% versió ...)
  • Seccions estàtiques (% description,% changelog ...)
  • Etapes (% build,% install ...)
  • Triggers (% triggerin,% triggerpostun ...)
  • Scriptlets (% pretrans,% postun ...)

Per saber com es fa servir una determinada macro, l'única forma és consultar la documentació. Bé, en realitat sempre pots usar altres trucs com fixar-se en com està fet un SPEC d'un paquet semblant a el teu, O el mètode de prova i error. Un parell de ordres pràctics:

rpmbuild --showrc # Mostra totes les teves macros
rpmbuild --eval = "% nombre_macro" # Mostra la macro expandida

Les macros són el mateix si porten un claudàtor voltant. Si després de l'claudàtor hi ha un signe d'interrogació, quedarà en blanc si no hi ha res a expandir. Per exemple, 1% {? Dist} s'expandirà a 1.fc16 a Fedora 16, però en una altra distro es quedarà com 1.

Les macros s'expandeixen fins i tot en els comentaris. Per evitar que s'expandeixi, usa dos percentatges seguits. Per exemple, %% setup quedarà com % setup literalment a l'expandir-se.

Obrint la gana

Ja anem per la segona entrega d'aquest tutorial i encara no sabeu el que empaquetarem, així que aquí va el vídeo perquè obriu boca:

El joc que anem a empaquetar és altament addictiu. Recomano no completar el tutorial en cas que no tingueu temps després de perdre unes quantes hores de la vostra vida jugant a això ...

< < Llegir primera part del tutorial sobre empaquetat RPM


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.