On Fri, Oct 10, 2008 at 01:07:22AM +0400, Konstantin A. Lepikhov wrote: > Не подскажут ли уважаемые знатоки, какой лимит на кол-во provides/requires > в нашем rpm? Интересует в виде максимального кол-ва записей в пакете. Хедер должен целиком помещаться в память, общий лимит 16M. rpmdb/header.c: 60 /** 61 * Sanity check on data size and/or offset. 62 * This check imposes a limit of 16Mb, more than enough. 63 */ 64 #define hdrchkData(_nbytes) ((_nbytes) & 0xff000000) На практике средний размер хедера -- несколько килобайт, максимальный -- около мегабайта. $ perl -MDB_File -le 'tie %db, "DB_File", "/var/lib/rpm/Packages", 0 or die; print length($v) while ($k,$v) = each %db' |~/stats.pl min=4 max=838512 mean=15909.9935379644 medi=6642 devi=48149.4217886403 $ Здесь min=4 на самом деле соответствует "нулевому хедеру", который содержит last_insert_id (целое значение, а не хедер). Сериализация дает более ясное представление (но неправильные цифры): $ perl -MRPM::Database -MData::Dumper -le '$db=RPM::Database->new or die; print length(Dumper($v)),"\t",$k while ($k,$v) = each %$db' |~/stats.pl min=4530 ilmbase6-common max=6450138 tetex-core mean=80824.329021827 medi=22901 perl-XML-Atom devi=360911.67139352 $ Хедер включает в себя имена файлов и md5 суммы, поэтому на деле большой хедер получается у больших пакетов. $ perl -MRPM::Database -MData::Dumper -le '$db=RPM::Database->new or die; print Dumper($$db{"tetex-core"})' |less (посмореть что находится в хедере) /=> (удобно так искать) $