*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
_______________________________________________
Mailing list: https://launchpad.net/~ailurus
Post to : [email protected]
Unsubscribe : https://launchpad.net/~ailurus
More help : https://help.launchpad.net/ListHelp