On Sun, Dec 17, 2006 at 01:02:23PM +0300, Alexey Tourbin wrote: > On Sun, Dec 17, 2006 at 12:58:56PM +0300, Alexey Tourbin wrote: > > Теперь я почти уверен, что они отсротированы, поэтому последняя > > попавшаяся будет наибольшей. > > > > $ 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 > > ... > > $ > > Что-то не сходится. Из этого получается что последняя попавшаяся будет > наименьшей. Надо ещё подумать. Всё правильно, сортировка по возрастанию версии касается ProvidesList. $ perl -MAptPkg::Cache -le '$c=AptPkg::Cache->new;@v=map$$_{OwnerVer}{VerStr},@{$$c{"python-devel"}{ProvidesList}};print"@v"' 2.3.5-alt1 2.4.4-alt2 2.4.4-alt2.1 $ В общем нутром чую, что Pkg.ProvidesList() т.е. список --whatprovides отсортирован по версиям реальных пакетов, которые предоставляют виртуальную зависимость.