*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

回复