Problem s aktualizaci kde

Dan Lukes dan at obluda.cz
Fri Aug 28 23:39:35 CEST 2009


Petr Macek napsal/wrote, On 08/28/09 13:45:
>> A to vubec nemluvim o 'pkgdb -F', ktere nalezenou "chybejici 
>> zavislost" pausalne resi smazanim zaznamu o zavislosti, protoze ji 
>> shleda "irrelevant".

> Nikdy jsem poradne pkgdb -F nepochopil

Tohle je ten duvod, proc se mi vyplati tady v konferenci byt. Sam bych 
se nedokopal, abych se podival jak to funguje, protoze nejak ziju s tim, 
jak to (ne)funguje. Ale kdyz se nekdo zepta, tak ja se teda podivam a 
zjistim si to. A kdyz uz to vim, tak reknu  ...

Takze - jak to dela - kdyz je u baliku uvedena zavislost, ktera neni 
nainstalovana, tak:

pomoci ...
make [prislusne optiony] package-depends-list
... zjisti co by v seznamu zavislosti byt melo.

A kdyz to co tam je "navic" (oproti tomu, co je v systemu nainstalovano) 
v tomto seznamu chybi, tak je to "zbytecne" a smaze se to.

To zni logicky, pokud toto pravidlo ma spravne zvladnutou vyjimku. Tou 
vyjimkou jsou ALT_PKGDEPS z pkgtools.conf, ktere jsou tam prave proto 
aby clovek mohl rict "vsude, kde je zavislost na 
databases/mysql50_client necht' se ma zato, ze port zavisi na 
mysql51_client neb jsem upgradoval z MySQL 5.0 na MySQL 5.1 coz formalne 
nejsou dve verze tehoz portu, ale dva samostatne porty tudiz to 
automaticky porovnavac cerzi samostatne nezvladne),

Jenze prave okolo ALT_PKGDEP je ta logina v pkgdb nejaka velmi 
podezrela. Tak zaprve, zatimco v ALT_PKGDEP muze byt jak mazev portu tak 
origin (oboji pripaden navic muze obsahovat *) tak kod v tomto miste 
pocita jen s variantou "nasev portu". Takze pokud je v pkgtools.conf 
alternativni zavislost zapsana originama pak neni odhalena (a tudiz je 
zavislost na "starem" portu nasledne smazana jako irelevantni).

To je jeden problem.

Druhy, a v podstate samostatny, problm je - i kdyz by byla ALT zavislost 
odhalena, vsechno co v takovem pripade pkgdb udela je - prestane se 
balickem zabyvat (tj. necha tam puvodni, vadnou, zavislost).


Takze - k tomu, aby pkgdb -F fungoval tak, jak podle m je pospano, ze 
fungovat ma, je treba tri veci -

1. u cross-port upgradu poctive vypknovat ALT_PKGDEPS v konfiguraci.
2. opravit to, ze alternativa se hleda pouze podle nazvu a ignoruje se 
origin
3. opravit to, ze pri nalezeni alternativy se prace na oprave balicku 
okamzite ukonci

[1] je vec spravce systemu, [2] a [3] jsou podle me chyby v kodu pkgdb. 
Pomerne snadno opravitelne, protoze [2] je otazka jednoho radku a [3] 
dvou, z nichz ten prvni je ale navic tentyz jako v pripade [2] - takze 
celkem - dva radky.

No tak ja si to teda u sebe opravim a poslu PR - treba je tam orpavdu 
chyba, i kdyz nelze zcela vyloucit, ze jsem jen nepochopil, co ma -F 
presne delat.


> Ale at to udelam jakkoli, vzdycky mi to nakonec funguje.
> Takze bud to delam dobre nebo ten program vi, co delat :-)

No, ono je to spis tak, ze bud' pouzivas postup, pri kterem pkgdb 
vlastne vubec neni potreba, pripadne, delas jen takove typu upgrade, pri 
kterych se vyse popsany problem neprojevi.

A nebo delas, projevi se, ale nastesti vadne packages nepouzivas 
zpusobem, ktery by dovolil vade projevit se.

						Dan





More information about the Users-l mailing list