Home > Linux Debian, repository, ubuntu > Tdpkg: col database dpkg mette il turbo

Tdpkg: col database dpkg mette il turbo


La vostra Debian comincia a dare segni di lentezza nell’installazione o rimozione di nuovi pacchetti tramite dpkg?
Questo accade poiché la cartella /var/lib/dpkg/info/ è intasata da migliaia di file .list che si accumulano ad ogni vostra operazione.

Il sig Luca Bruno ha pensato bene di affidarne la gestione ad un database. A quanto pare non è stato ascoltato dai mantainer e ha così creato il suo progetto autonomo tdpkg.

Come database possibile utilizzare tokyocabinet (più rapido) o sqlite.
Si tratterebbe di una libreria che intercetta le chiamate di dpkg caricata attraverso LD_PRELOAD.
L’autore dichiara un notevole incremento nelle prestazioni.

Ecco come provare tdpkg sulla nostra Debian (useremo la consigliata tokyocabinet):

Installiamo le dipendenze necessarie:

$ apt-get install build-essential libtokyocabinet-dev 

 
Procuriamoci i sorgenti e scompattiamoli nella nostra home:
Download
 
Compiliamo la libreria:

$ cd tdpkg-1.0
$ make

 
Utilizzo:
Creiamo prima una copia di sicurezza di /var/lib/dpkg/info/ :

$ su
$ cp -r /var/lib/dpkg/info ~/Desktop/

Possiamo utilizzarlo manualmente per ogni singola operazione con il comando:

$ cd ~/tdpkg-1.0
$ LD_PRELOAD=./libtdpkg.so dpkg ...

O per tutte le operazioni della sessione corrente tramite l’alias (unalias per rimuoverlo):

$ alias dpkg="LD_PRELOAD=~/tdpkg-1.0/libtdpkg.so dpkg"

Ogni volta quindi che verrà invocato il comando dpkg per installare/rimuovere/reinstallare un pacchetto verrà utilizzato il database tokyocabinet.

Se vogliamo che l’alias venga mantenuto dopo il riavvio dobbiamo salvare il comando nel file nascosto /home/.bashrc (gedit ~/.bashrc).

La cache di tokyocabinet verrà inserita in /var/lib/dpkg/info/tdpkg.cache.
Sul sito del progetto è inserita anche la metodologia per il benchmarking.

Io lo testerò nei prossimi giorni, sappiatemi dire come vi trovate :)

  1. claudio
    19 marzo 2010 a 6:37 | #1

    ok, lo sto provando sulla mia ubuntu karmic:-) tra qualche giorno vi farò sapere come è andata (ho un laptop abbastanza datato, quindi la differenza di performances dovrebbe risultare più evidente)

  1. Nessun trackback ancora...