Flestir þekkja nú RPM. Red Hat Package Manager. Tól sem yfirleitt
stendur sig með prýði. Eitt af því sem Red Hat má vera stolt af.
Langflestir nota nú X86 vélar til að keyra Linux. Samkvæmt
einhverjum heimildum nota líka flestir Red Hat. Lítið út á það að
setja, svosem.
En nú gerist það að flestir sem nota RPM, sem væntanlega er
meirihluti af þessum meirihluta Linux notenda, nota binary RPM
pakka. Ekki source RPM pakka. (.i386.rpm í stað .src.rpm).
Nú vill svo til að ég er svoddan vitleysingur. Ég vistþýði sjálfur
allan hugbúnað sem ég nota í Linux, nema það sem ég yfirhöfuð set
inn um leið og ég set inn distróið. Ég er Red Hat gutti (þó ekkert
harður, mér er hálfsama um hvaða distró ég nota). En þar sem ég er
svona mikill vitleysingur, kom það samt upp á bátinn að þrátt fyrir
að vilja vistþýða allt sjálfur, vildi ég samt hafa allt í góðu
skipulagi til að ég gæti síðar meir tekið út forritin. Margir segja
að maður eigi að nota bara “rm” til að eyða forritum, en sénsinn að
maður nenni því. Aðrir benda á að “make uninstall” er til í flestum
tarboltum sem nota Autoconf, og það væri svosem í góðu lagi að nota
það, ef maður myndi bæði nenna að halda í tarbolta eftir að maður
notar það (sem ég geri ekki), og ef allur hugbúnaður nytist við
Autoconf, sem er einmitt ekki tilfellið.
Þá er auðvitað málið kannski bara að notast við .src.rpm pakka í
staðinn fyrir .i386.rpm pakka, og að vistþýða sinn skít yfir í
.i686.rpm, .ppc.rpm, .alpha.rpm, eða hvað sem manni sýnist. Þetta,
eins og margir, lærði ég á sínum tíma að gera og nýttist mér mjög
vel. Bjó til nokkra PRM pakka úr tarboltum líka. Það sem er
leiðinlegt við þessa aðferð, hinsvegar, er tíminn sem hún tekur.
Flestir kannast við það að einhver hugbúnaður sé einfaldlega ekki
finnanlegur í RPM formi, eða þá að RPM pakkarnir eru allir af
útgáfum sem eru eldri en sú nýjasta.
Ég verð reyndar að viðurkenna að ég hef sama og enga reynslu af
Debian pakkakerfinu, en mér skilst að það virki eins og RPM. Það
þarf að skrifa svokallaða spec-fæla til að segja pakkanum hverju
hann er háður, hvað hann heitir, hvaða útgáfa, hver pakkaði þessu
saman og eitthvað.
En þá kynntist ég nokkuð mögnuðu forriti. Pack Install Monitor.
Fann það á Freshmeat. Það er nokkuð skondið. Þegar maður gerir
“make install”, reynir það eftir bestu getu að fylgjast með því
hvaða skrár fara inn, og hvert. Svo skrifar það niður md5-summu
skráarinnar og staðsetningu hennar í skrá sem heitir hið sama og
forritið+útgáfan. Síðan gerir maður bara "install
–erase=[nafn]-[útgáfa]“ og voila. Pakkinn er farinn. Þessi aðferð
var fín, en var leiðinleg að því leyti að Pack Install Monitor sér
ekkert alltaf skrárnar sem eru að fljúga um kerfið í ”make
install“, jafnvel þó að hugbúnaðurinn sem maður er að vistþýða noti
Autoconf. Það kemur fyrir í mikilvægum pökkum eins og Apache,
Sendmail og Samba, svo eitthvað sé nefnt. Annars myndi ég segja að
þessi aðferð gengi í u.þ.b. 85% tilvika. 15% er hinsvegar frekar
hátt hlutfall. Það sem maður gat alveg gert, var að fylgjast
sjálfur með hvað ”make install“ gerði, elta niður skrárnar, keyra
”md5sum“ á þær allar, og þá var maður kominn með sömu útkomu, sem
maður gat síðan hent niður í skrá sjálfur, en þetta, eins og
RPM-gerðin, er tímafrekt og *ótrúlega* leiðinlegt.
Þó þótti mér vænna um Pack Install Monitor heldur en RPM. En einu
sinni fór ég á vefsíðu forritsins í leit að uppfærslu, og viti
menn. Tilkynning frá höfundinum. Hann var hættur að smíða Pack
Install Monitor. Eftir nokkra djúpa anda og Whiskey-flösku hélt ég
áfram að lesa. Það kom í ljós að hann hafði misst trú á eigin
forriti. Hann hafði kynnst einhverju sem kallaðist Encap. Á síðu
hans var slóð á græjuna (sem reyndist reyndar röng, en maður reddar
sér með því að klippa síðasta hluta URLsins af).
Encap-aðferðin:
Allur hugbúnaður sem ég hef kynnst sem hefur haft ”make install“
yfirhöfuð, hefur haft þann kost að maður getur sagt því hvert það á
að fara. Sá hugbúnaður sem notast ekki við ”install“ eða ”make
install" eða eitthvað slíkt er hvort sem er yfirleitt bara ein skrá
sem maður getur alveg eins flutt sjálfur. Allavega, trikkið er að
setja pakkann inn í /usr/local/encap/[nafn]-[útgáfa]. Allar skrár
hugbúnaðarins, nema hugsanlega notendaskrár (/home) og stýriskrár
(/etc) fara þangað inn. Síðan eru myndaðir tilheyrandi symlinkar
inni í /usr/local/bin, /usr/local/lib og svo framvegis.
En Encap er ekki forrit, heldur aðferð. Til eru nokkur forrit sem
hönnuð eru utan um þessa aðferðafræði. Vefsíða Encaps er <A
HREF='http://encap.cso.uiuc.edu'>http://encap.cso.uiuc.edu/</A>.
Þar er til dæmis tól sem kallast “epkg”, og er, eins og allt sem
undirritaður notar á Linux, open-source. Segjum sem svo að ég ætli
að installa Samba. Þá myndi ég gera:
./configure –prefix=/usr/local/encap/samba-2.0.7
make
make install
epkg -i samba
Og voila. Epkg býr til alla tilheyrandi symlinka í /usr/local sem
þarf. Ef ég vil síðan síðar meir losna við Samba, geri ég:
rm -rf /usr/local/encap/samba-2.0.7
epkg -c
Og Epkg losar mig við alla symlinka sem hanga í lausu lofti. Eyðir
meir að segja tómum dirum, t.d. ef /usr/local/var er ekki í notkun,
eyðir það henni.
Mig langaði til að fjalla ögn um þessa aðferðafræði vegna þess að
hún hefur reynst mér mjög vel, og ætti hún að auðvelda mönnum
flutninga yfir í önnur distró eða önnur kerfi þar sem vitlaus
dependency og binary-tegundir ættu ekki að vera að þvælast fyrir.