/tdpkg

Dpkg wrapper using sqlite for faster initialization

Primary LanguageCGNU General Public License v3.0GPL-3.0

The `tdpkg' shared library is used to speed up dpkg .list files loading using
either tokyocabinet or sqlite3.
Homepage: http://lethalman.hostei.com/tdpkg.html

REQUIREMENTS

build-essential
libsqlite3-dev for sqlite backend
libtokyocabinet-dev for tokyocabinet backend

BUILD

Type `make' to build tdpkg with tokyocabinet support.
Type `make CACHE=sqlite' instead to build tdpkg with sqlite3 support.
You'd better not install this library, it could make your system highly
unstable.

USAGE

Please make a backup copy of your /var/lib/dpkg/info directory before using
tdpkg.

Manual usage:
LD_PRELOAD=./libtdpkg.so dpkg ...

For system-wide usage use an alias (make sure you the absolute path to
libtdpkg.so):
alias dpkg="LD_PRELOAD=/path/to/libtdpkg.so dpkg"

The cache for both sqlite3 and tokyocabinet is located at
/var/lib/dpkg/info/tdpkg.cache.

BENCHMARKING

The operations involved with dpkg database reading are mostly done on the file system.
For this reason cleaning up the kernel cache is a must before calling either tdpkg or dpkg:

echo 1 > /proc/sys/vm/drop_caches