I am using rpm 5.4.9 as my package manager on an embedded system, and I am running into some bottlenecks with the Berkeley database. I am using an SD Card as my root file system.
The rpm transactions from a kernel upgrade take an hour or so. Using the --stats option, I found that rpm was spending 15 or so seconds total per package in dbadd, dbget, etc. An strace revealed that many fsyncdata calls were happening. It appears this is due to ACID-ity of transactions. I found some posts saying that sqlite could be used as the database backend, so I tried this. I tried using configure to activate sqlite without success. I can compile with sqlite support, but so far, I can't get RPM to create any sqlite files. I've tried database conversion, initializing an empty RPM database, and setting _dbapi to 4 in /usr/lib/rpm/macros. I discovered that within configure.ac, DBAPI is hard coded to 3 (Berkeley DB). I would like to know if sqlite3 as a backend is supported by RPM these days in 5.4.9 or any other versions. I want to find out if some of the patches within yocto/poky are breaking sqlite support. Jate
