update README
[~helmut/debian-dedup.git] / README
1 Required packages
2 -----------------
3
4 aptitude install python python-debian python-lzma curl python-jinja2 python-werkzeug sqlite3 python-imaging
5
6 Create a database
7 -----------------
8 The database name is currently hardcoded as `test.sqlite3`. So copy the SQL
9 statements from `schema.sql` into `sqlite3 test.sqlite3`. In addition it is
10 highly recommended to put the database into WAL mode. Otherwise all your
11 reading queries will block forever when doing an import. This setting is
12 permanent.
13
14     PRAGMA journal_mode = WAL;
15
16 Import packages
17 ---------------
18 Import individual packages by feeding them to importpkg.py:
19
20     ls -t /var/cache/apt/archives/*.deb | while read f; do echo $f; ./importpkg.py < $f || break; done
21
22 Import a full mirror::
23
24     ./autoimport.py http://your.mirror.example/debian
25
26 Viewing the results
27 -------------------
28 Run `./webapp.py` and enjoy a webinterface at `0.0.0.0:8800` or inspect the
29 SQL database by hand. Example queries:
30
31     SELECT a.package, a.filename, b.package, b.filename, a.size FROM content AS a JOIN content AS b ON a.hash = b.hash WHERE (a.package != b.package OR a.filename != b.filename) ORDER BY a.size DESC LIMIT 100;
32
33     SELECT hash, sum(size)-min(size), count(*), count(distinct package) FROM content GROUP BY hash ORDER BY sum(size)-min(size) DESC LIMIT 100;