Velocizzare DPKG con un database (TDPKG)
Ultima modifica per la pagina: 14:16, 27 mar 2010.
Indice |
I fatti: dpkg è lento.
Inutile girarci intorno: APT funziona bene, parecchio bene. Ma dpkg è lento, parecchio lento.
Le soluzioni per velocizzarlo sono a portata di mano, e la più accreditata (utilizzare un simpatico database) è stata più volte discussa dagli sviluppatori.
Avvertenze, o del "No, non fatelo!"
Per farla breve: dpkg salva una serie di file nella cartella /var/lib/dpkg/info/. Ad ogni installazione/rimozione il programmino si mette a scavare in quel miliardo di file, che usa come database. Ma allora perchè non usare direttamente un database, di quelli veri? Presto detto: i file possono corrompersi. La corruzione di un, che so, /var/lib/dpkg/info/xchat.md5sums potrebbe indurvi a smanettare massimo per un paio di ore. Ma un database "di quelli veri" mette tutti i dati su un unico file. Si, un unico file. Ora però mettete via quel sorrisetto sadico dalla faccia.
Ah, poi c'è un'altra obiezione all'utilizzo di database "seri", ma preferisco non commentare: secondo gli sviluppatori, infatti, sarebbe una pessima decisione dipendere da librerie esterne. Mapperfavore...
Ma io adoro fare del male alla mia distro!
Perfetto allora! :)
Ultimamente si fa un gran parlare di tdpkg, un progetto dell'italiano Luca Bruno.
Questa libreria non sostituisce ma "collabora" con dpkg, permettendo un incremento della velocità durante la lettura del database dei pacchetti installati.
Ok, basta chiacchiere, montiamola!
Installazione
Te lo dico per l'ultima volta: questa procedura potrebbe rendere instabile la tua distro, non lo fare, davvero.
Cominciamo con le dipendenze. Servono build-essential e un database a scelta tra tokyocabinet (più veloce secondo lo sviluppatore) e sqlite.
sudo apt-get install build-essential libtokyocabinet-dev
oppure:
sudo apt-get install build-essential libsqlite3-dev
Scarichiamo e scompattiamo il pacchetto:
wget http://lethalman.hostei.com/download/tdpkg-1.0.tar.gz tar xvzf tdpkg-1.0.tar.gz
Poi compiliamo il tutto.
Tokiocabinet:
cd tdpkg-1.0/ && make
Sqlite:
cd tdpkg-1.0/ && <code>make CACHE=sqlite</code>
IMPORTANTE: Ora tocca fare un backup di /var/lib/dpkg/info/
sudo cp -r /var/lib/dpkg/info /var/lib/dpkg/info.old
Poi impostiamo l'alias:
alias dpkg="LD_PRELOAD=/percorso/completo/libtdpkg.so dpkg"
Alias da mettere, eventualmente, anche dentro ~/.bashrc
Già fatto?
Pare di si.
Velocizza così tanto? Non so.
Finale aperto, dunque. Aperto alle vostre "prove su strada" :)
--Aemme 23:05, 21 mar 2010 (UTC)
Questa pagina è stata letta 1.067 volte.

