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:
BUILD
je imenik, v katerem RPM izvaja celotno gradnjo. Za
gradnjo bi sicer načeloma lahko uporabili katerikoli imenik;
RPM pa privzeto izbere tega.SOURCES
je imenik, v katerega moramo vstaviti prvotne
izvirne datoteke (navadno kot stisnjeni arhiv tar) in
popravke. RPM bo, glede na privzeto nastavitev, iskal v tem
imeniku.SPECS
je imenik, v katerem naj bi bile vse datoteke spec.RPMS
je imenik, v katerega RPM po gradnji shrani binarne
pakete RPM.SRPMS
je imenik, v katerega RPM shrani izvirne pakete RPM.
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
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.diff -uNr imenik.orig imenik > ../SOURCES/dirname-linux.patch
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.
Ko imamo datoteko spec, smo pripravljeni za izdelavo svojega paketa. Najuporabnejši način za to je uporaba ukaza v naslednji obliki:
Skupaj s stikalomrpm -ba foobar-1.0.spec
-b
lahko koristno uporabite tudi druge izbire:
p
pomeni: izvedi samo korak prep datoteke spec.
l
je namenjen preverjanju seznama datotek in opravi
nekaj preskusov na %files
.
c
izvede koraka prep in compile. To je primeren
način, kadar niste prepričani, ali se bo vaša izvirna datoteka
sploh prevedla. Sprva se zdi neuporaben, ker se boste verjetno
igrali z izvirno datoteko tako dolgo, dokler se ne prevede, in
šele potem uporabili RPM. Ko pa se boste privadili uporabe RPM,
boste spoznali, da vam bo ta izbira v nekaterih primerih v
pomoč.
i
izvede korake prep, compile in install.b
izvede korake prep, compile in install ter zgradi
binarni paket.a
zgradi vse (tako izvirne kot tudi binarne pakete).--short-circuit
bo skočil neposredno na določen korak
(uporablja se lahko samo v kombinaciji s c
in i
).--clean
po končanem prevajanju odstrani delovni
imenik, v katerem se je paket prevajal.
--keep-temps
ohranijo se vse začasne datoteke in
skripte, ki so bili ustvarjeni v /tmp
. Z izborom
-v
lahko vidite, katere datoteke so se ustvarile v
/tmp
.
--test
ne izvede nobenih dejanskih stopenj, izvede pa
keep-temp.
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.
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/.
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.