*http://defindit.com/readme_files/rpm_yum_hangs.html
只要rebuild下db,就可以看到他们对数库库都干了什么了。 * 2010/6/7 Devil Wang <[email protected]> > *Basenames: Berkeley DB (Hash, version 9, native byte-order) > Conflictname: Berkeley DB (Hash, version 9, native byte-order) > __db.001: Applesoft BASIC program data > __db.002: data > __db.003: data > __db.004: data > Dirnames: Berkeley DB (Btree, version 9, native byte-order) > Filedigests: Berkeley DB (Hash, version 9, native byte-order) > Group: Berkeley DB (Hash, version 9, native byte-order) > > Installtid: Berkeley DB (Btree, version 9, native byte-order) > Name: Berkeley DB (Hash, version 9, native byte-order) > Obsoletename: Berkeley DB (Hash, version 9, native byte-order) > Packages: Berkeley DB (Hash, version 9, native byte-order) > Providename: Berkeley DB (Hash, version 9, native byte-order) > Provideversion: Berkeley DB (Btree, version 9, native byte-order) > Pubkeys: Berkeley DB (Hash, version 9, native byte-order) > Requirename: Berkeley DB (Hash, version 9, native byte-order) > Requireversion: Berkeley DB (Btree, version 9, native byte-order) > Sha1header: Berkeley DB (Hash, version 9, native byte-order) > Sigmd5: Berkeley DB (Hash, version 9, native byte-order) > Triggername: Berkeley DB (Hash, version 9, native byte-order) > de...@devil rpm$ > > * > 2010/6/7 Devil Wang <[email protected]> > > *Hi all, >> >> 刚才折腾了下。 >> >> 大体上有了眉目。 >> >> yum的数据库里面的信息也是表结构的。而且这个结构是不变的。 >> >> 我在yum的source里面看到他也会去 select 一些 元组,这些元组的属性是固定。 >> >> sql = "SELECT name, version, release, epoch, flags " \ >> "FROM %s WHERE pkgKey = ?" % prcotype >> >> 我本以为sqlite也跟mysql一样。会有个常住deamon,后来我看了些关于C++操作sqlite的sample ,我发现他是直接去读 >> db文件的,不会有一个deamon去check是否有别的usr来访问数据库。 >> >> 然后我发现 yum的数据库文件是放在 /var/lib/rpm 这个目录下的。 >> >> r...@devil rpm$ ls >> Basenames __db.004 Name Pubkeys Triggername >> Conflictname Dirnames Obsoletename Requirename >> __db.001 Filedigests Packages Requireversion >> __db.002 Group Providename Sha1header >> __db.003 Installtid Provideversion Sigmd5 >> r...@devil rpm$ >> >> 很显然,那些__db*因该就是 数据库文件了。 >> >> Installid我file 了下,也是数据库文件,二叉树的结构。 >> r...@devil rpm$ file Installtid >> Installtid: Berkeley DB (Btree, version 9, native byte-order) >> r...@devil rpm$ >> >> 如果我们直接读Installid里面的数据, 我觉得应该是Installed software info. >> 在Ailurus启动的时候去parse这个文件。应该可以大大的提高Ailurus的速度。 >> >> 各位可以一起check下。 >> >> 为了Ailurus的一切。 >> * >> -- >> Thanks & Regards >> >> Linux Developer : Devil Wang >> > > > > -- > Thanks & Regards > > Linux Developer : Devil Wang > -- Thanks & Regards Linux Developer : Devil Wang
_______________________________________________ Mailing list: https://launchpad.net/~ailurus Post to : [email protected] Unsubscribe : https://launchpad.net/~ailurus More help : https://help.launchpad.net/ListHelp

