Magjia e RPM është se të gjitha udhëzimet për të ndërtuar një paketë përfshihen në një skedar të vetëm SPEC. Sigurisht, së pari duhet ta kuptoni, dhe ndonjëherë nuk është e lehtë ... |
Çfarë është dosja SPEC?
Në thelb, është skedari që tregon se si të ndërtohet, instalohet dhe çinstalohet paketa.
Udhëzimet që do t'ju japim ndahen në faza, të cilat nga ana tjetër janë makro. Këto janë fazat themelore që ekzistojnë:
- % parapërgatitje: Burimet janë zbërthyer dhe aplikohen arna.
- % ndërtojnë: Hartohen binaret.
- kontrolloni%: Verifshtë verifikuar që është përpiluar si duhet.
- % e instaluar: Kryhet stërvitja e instalimit.
- % skedarë: Renditni të gjithë skedarët që do të shfaqen në paketë. Shpesh përdoret gjithashtu për të caktuar atributet. Nëse ka ndonjë skedar që nuk renditet, ai nuk do të ndërtohet.
Disa SPEC mund të mos kenë disa nga fazat. Ato nuk janë të detyrueshme.
Ka faza të tjera që quhen skriptet. ato janë speciale sepse nuk ekzekutohen kur ndërtohet paketa, por kur instalohet ose çinstalohet. Ju madje mund të caktoni një shkas për të ekzekutuar kur instalohet një paketë tjetër. Ky është një nga avantazhet më të mëdha që RPM ka mbi skedarët DEB.
Rrëmuja e madhe me RPM është se ka të njëjtën sintaksë për gjithçka. Kjo është, të gjitha këto fjalë të veçanta paraprihen nga një shenjë për qind (%) janë makrot RPM, por ka makro të të gjitha llojeve:
- Funksionet (% konfigurim,% konfigurim,% patch…)
- Variablat e paracaktuara (% _bindir,% dist…)
- Variablat e përcaktuara në vetë SPEC (% buildroot,% name,% version ...)
- Seksionet statike (% përshkrim,% ndryshim log)
- Fazat (% ndërtim,% instalim)
- Shkaktarët (% triggerin,% triggerpostun)
- Shkrimet (% pretrans,% postun ...)
Për të ditur se si përdoret një makro e caktuar, mënyra e vetme është këshillohuni me dokumentacionin. Në të vërtetë ju gjithmonë mund të përdorni truket e tjera si shikoni se si bëhet një SPEC nga një paketë e ngjashme me tuajat, ose metoda e provës dhe gabimit. Nje pale komandat praktike:
rpmbuild --showrc # Shfaq të gjitha makrot tuaja
rpmbuild --eval = "% macro_name" # Trego makron e zgjeruar
Makrot janë të njëjta nëse kanë një kllapa rreth tyre. Nëse ka një pikëpyetje pas kllapës, do të jetë bosh nëse nuk ka asgjë për t'u zgjeruar. Për shembull, 1% {? Dist} do të zgjerohet në 1.fc16 në Fedora 16, por në një distro tjetër do të qëndrojë si 1.
Lirimi i oreksit tuaj
Ne tashmë jemi në këstin e dytë të këtij tutoriali dhe ju ende nuk e dini se çfarë do të paketojmë, kështu që këtu është videoja për të hapur gojën tuaj: