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