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