On Sat, Dec 16, 2006 at 01:27:48AM +0300, Dmitry V. Levin wrote: > On Fri, Dec 15, 2006 at 04:25:03AM +0300, Alexey Tourbin wrote: > > On Fri, Dec 15, 2006 at 02:40:38AM +0300, Alexey Tourbin wrote: > > > Т.е. 2.4.4-alt2.1 в этом месте не видно вообще. > > > Соответственно, дальше, вероятно, стоит ковырять pkgVersionMatch::Find. > > > > Вот фикс, с которым будет выбираться не первая попавшаяся, а последняя > > попавшаяся версия. > > Я правильно помню что они отсортированы и потому последняя попавшаяся > будет наибольшей? Теперь я почти уверен, что они отсротированы, поэтому последняя попавшаяся будет наибольшей. $ perl -MAptPkg::Cache -le '$c=AptPkg::Cache->new;while(($k,$v)=each%$c){@v=@{$v->VersionList};if(@v>1){@v=map$$_{VerStr},@v;print"$k\t@v"}}' | awk '$2!=$3' syslogd 1.4.1-alt26 1.4.1-alt25 python-modules 2.4.4-alt2.1 2.4.4-alt2 vim-common 4:7.0.178-alt1 4:7.0.162-alt1 4:7.0.146-alt1 4:7.0.122-alt1 python-tools-modulator 2.4.4-alt2.1 2.4.4-alt2 libaprutil 1:0.9.13-alt1 1:0.9.12-alt1 ... $ Они должны быть отсортированы при создании pkgcache.bin. Предположительно здесь: $ grep qsort apt-pkg/orderlist.cc qsort(List,End - List,sizeof(*List),&OrderCompareB); qsort(List,End - List,sizeof(*List),&OrderCompareA); $