Ekvivalent checkinstallu
Dan Lukes
dan at obluda.cz
Tue Jun 28 18:24:15 CEST 2005
Roman Neuhauser wrote:
>> Nebo, pripustme, ze puvodni tazatel je schopen mit vse co potrebuje,
>>protoze on to nejak pozna. Takze se tedy zeptam ja za sebe - jak u
>>konkretniho portu poznam, co vsechno musim pritahnout
>
> ports(7): fetch-list, fetch-recursive, fetch-recursive-list
Tyhle jsem znal vsechny. To ale jeste k reseni naseho problemu nevede.
*-list varianty sice vygeneruji prikazu, kterymi jest mozno stahnout
vsechno potrebne, ale neskonci to v te cilove adresarove strukture v
jake ma.
fetch-recursive to sice stahne a ulozi tam kam ma, ale pokud nezacnu
tim, ze's distfiles uplne vymazu, tak nepoznam co vsechno se pritahlo
kvuli memu portu a co vsechno tam je uz "od minula" (a nejakym difem
mezi puvodnim a novym obsahem adresare to zjistit nelze - nektere veci
"od minula" se mozna nove nestahovaly, ale "muj" port je potrebuje).
Kompletni cisteni distfiles je ale trochu plytvani pasmem - bude se
vsechno stahovat znovu, i to, co se nezmenilo, coz muze u vetsich veci a
pomalejsi lince (nebo, nedejboze, limitu na data) docela bolet.
Teoreticky by se dalo zkombinovat pouziti fetch-recursive, ktere by
stahlo vse potrebne, s fetch-recursive-list, ze kterych bychom se
pokusili vyparsovat jmena stahovanych souboru, ty pak (treba findem)
hledat kde v 'distfiles' jsou ulozene a tim ziskat obe informace - jak
"co" tak "kde".
Tim parsovanim to ale taky neni ruzove - Makefile muze natolik
ovlivnovat to, jakym prikazem bude potrebny soubor stazen (vubec nemusi
jit o vice-mene uniformni fetch s parametry, ktere maji stale stejny
pattern), ze si vubec nejsem jist, zda pujde takovy parser napsat.
Takze tohle je jen "statisticka" metoda. Muze to fungovat, ale ne vzdy.
>>a kam (do jakych podadresaru) to do distfiles dat aby se potom 'make
>>install' spustil a uspesne dobehl ?
> make -V DISTFILES
To jsem neznal, ale to mi tak uplne nepomuze. Tenhle prikaz nam vypise
seznam souboru potrebnych pro tento port. To nam sice umozni v distfiles
potrebne soubory najit a ziskat tak informaci o jejich 'spravnem'
umisteni (tedy, za predpokladu, ze zadne dva porty nestahnout jako svoje
zdrojaky soubory stejneho jmena, ktere se budou lisit jen umistenim ve
stromu distfiles)
Spis nez tohle bychom potrebovali (nejlepe rekursivni) vypis na cem je
dany port zavisly (tedy jmena portu na kterych zavisi).
Zatim tedy zadnou spolehlivou a jednoduchou metodu jak ziskat vse co
potrebuji nevidim - krome te "neekologicke" pri ktere je treba obsah
distinfo kompletne smazat a te 'statisticke' ktera sice mozna funguje,
ale je zrejme, ze rozhodne nemusi fungovat pro vsechny porty.
Je to tak, ze stale neco podstatneho prehlizim, nebo to opravdu
jednoduche reseni nema ?
----
Ja jsem zatim podobny script nepotreboval, nicmene, zdalo s emi, ze
nejblizsi schudna cesta by byla pouzit fetch-recursive a nasledne v
jednotlivych 'distinfo' souborech (v kazdem adresari portu) dohledavat
jake soubory k danemu portu patri a kde jsou ve strukture umisteny.
Schazi mi k tomu jedine - zjistit seznam jmen portu na kterych
konkretni port zavisi. Kdyby byl k dispozici ten, pak by to uz opravdu
bylo trivialni. Dokonce by ani nebyl potreba 'fetch-recursive', stacil
by 'fetch' obycejny ...
Samozrejme, pokdu jsem shora neco prehledl, tak nema smysl spekulovat
nad touto cestou. Pokdu jsem neco neprehledl tak otazka je, jak ziskat
seznam zavislosti.
Dan
More information about the Users-l
mailing list