mirror of https://github.com/vitalif/tdpkg
A wrapper library around dpkg to make it use tokyocabinet (or sqlite) and speed it up when reading database. See http://yourcmc.ru/wiki/Tdpkg
43a4dbe44c
Nowadays libs must appear after objects when linking or else we get undefined symbol errors with LD_PRELOAD. |
||
---|---|---|
.gitignore | ||
AUTHORS | ||
COPYING | ||
Makefile | ||
README | ||
cache-sqlite.c | ||
cache-tokyo.c | ||
cache.h | ||
tdpkg.c | ||
util.c | ||
util.h |
README
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