Naprej Nazaj Kazalo

7. Gradnja paketa

7.1 Struktura imenika z izvirno kodo

Najprej potrebujemo pravilno strukturiran delovni imenik, v katerem bomo zgradili paket. Nastavitve zanj so v datoteki /etc/rpmrc. Večina ljudi uporablja kar /usr/src.

Morda boste morali za delovni imenik ustvariti naslednje imenike:

7.2 Preizkusna gradnja

Verjetno je pametno, če za začetek dosežete, da se programje, ki bi ga radi pripravili kot paket RPM, gladko prevede v vašem sistemu. Ob tem hkrati pripravimo še popravke, če so potrebni. Izvirno arhivsko datoteko razpakirajte v imeniku BUILD in imenik, v katerega se je razpakirala, nespremenjen preimenujte v imenik.orig (namesto imenik seveda uporabite pravo ime imenika). Potem še enkrat razpakirajte arhivsko datoteko. Vse spremembe, ki jih bo treba opraviti, opravimo v tem imeniku, imenik s pripono .orig pa pustimo pri miru. Premaknemo se vanj in sledimo navodilom za prevajanje programa ter popravimo, kar je treba. Ko se program gladko prevede, počistimo imenik (navadno z ukazom make clean). Pazimo tudi, da počistimo vse ostanke, ki jih pusti skript configure. Potem se vrnemo v imenik nad imenikom s programjem in izvedemo ukaz

diff -uNr imenik.orig imenik > ../SOURCES/dirname-linux.patch
S tem smo ustvarili popravek, ki ga lahko uporabimo v datoteki Spec. Oznaka "linux" v imenu popravka rabi zgolj za identifikacijo. Morda boste za oznako popravka raje uporabili kaj bolj opisnega, npr. "config" ali "bugs". Dobro je, da datoteko s popravki, ki ste jo ustvarili, pred uporabo pregledate in preverite, ali niste po nesreči dodali vanjo kakšnih prevedenih datotek.

7.3 Izdelava seznama datotek

Zdaj, ko imamo izvirno datoteko, ki se prevede, in ko vemo, kako to storiti, jo prevedimo in namestimo (navadno z ukazom make install). Opazujte izpis ob namestitvi in iz njega sestavite seznam datotek, ki ga boste dodali v datoteko Spec. Datoteko Spec navadno pišemo hkrati z omenjenimi koraki. Praviloma začnemo z enostavno datoteko, v katero vstavimo enostavnejše dele, potem pa jo po korakih dopolnimo.

7.4 Izdelava paketov z RPM

Ko imamo datoteko spec, smo pripravljeni za izdelavo svojega paketa. Najuporabnejši način za to je uporaba ukaza v naslednji obliki:

rpm -ba foobar-1.0.spec
Skupaj s stikalom -b lahko koristno uporabite tudi druge izbire: Za izbiro b je tudi nekaj določil:

7.5 Preskušanje

Ko imamo izvirni in binarni paket RPM, ju je treba preizkusiti. Najenostavneje in najbolj učinkovito je, da ga preizkusite v drugem računalniku. Ne nazadnje ste v svojem velikokrat izvedli ukaz make install, tako da se mora zdaj precej verjetno brez težav namestiti.

Paket lahko sicer iz delovnega sistema odstranite z ukazom rpm -e imepaketa in ga znova namestite, vendar to ni zanesljiva metoda, saj ste v istem sistemu paket nameščali tudi mimo sistema RPM, z make install. Če ste, denimo, na seznamu datotek kakšno datoteko pozabili, je z ukazom rpm -e ne boste odstranili. Ko boste paket znova namestili, bo sistem spet popoln, paket RPM pa bo še vedno ostal nepopoln. Vedite tudi, da ste paket ustvarili z ukazom rpm -ba imepaketa, večina pa ga bo zgolj namestila z ukazom rpm -i imepaketa. Zato pazite, da pri korakih prevajanja in nameščanja ne izvajate česa, kar je treba napraviti tudi pri nameščanju prevedenih programov.

7.6 Kaj storiti z novimi paketi RPM

Ko ste izdelali svoj paket RPM nečesa (pri čemer to nekaj še ni bilo pakirano kot RPM), lahko svoje delo delite z drugimi. Predpostavljamo seveda, da ste pripravili paket RPM nečesa, kar se sme prosto razširjati. To lahko storite tako, da paket naložite v strežnik FTP ftp://incoming.redhat.com/.

7.7 Kaj zdaj?

Oglejte si zgornja razdelka o preizkušanju in tem, kaj narediti z novimi paketi RPM. Želimo, da so na voljo vsi paketi RPM, kar jih je, in da so izdelani dobro. Vzemite si čas in jih temeljito preskusite, potem pa jih ponudite v skupno dobro. Prosimo, preverite tudi, ali nalagate samo prosto programsko opremo. Komercialne programske opreme ter programja za pokušino ne nalagajte, razen če avtorske pravice to izrecno dopuščajo. Sem spadajo, denimo, ssh, pgp itd.


Naprej Nazaj Kazalo