Come rendere dpkg più veloce?


17

L'installazione del pacchetto (dis) su un sistema Debian è orribilmente lenta, in parte perché funziona con un sacco di file (piccoli). A corto di spazio di archiviazione più veloce, come posso accelerarlo? Sto forse pensando di caricare una directory a cui si accede molto bene sulla RAM come soluzione unica, ma come posso farlo? C'è una soluzione migliore?


Quale filesystem e quanti pacchetti hai? Per le directory di grandi dimensioni, ext3 o versioni successive con l' dir_indexopzione, o Reiser, rappresenta un notevole miglioramento rispetto a ext2 o ext3 senza dir_index.
Gilles 'SO- smetti di essere malvagio' il

@Gilles Uso ext4 e ho ~ 1400 pacchetti installati.
Tshepang,

Risposte:


17

Per questa soluzione avrai bisogno di una versione di dpkg di almeno 1.15.8.6.

Da quella versione di dpkg, c'è una nuova force-unsafe-ioopzione che disabilita dpkg dalla chiamata sync () e simili tra ogni pacchetto. È possibile aggiungere questa opzione alla configurazione in / etc / dpkg in modo che sia sempre attiva.

Se hai una versione precedente di dpkg puoi usare alternativamente eatmydata .

E ricorda che entrambe queste soluzioni non sono sicure e probabilmente porteranno alla perdita di dati se si verifica un'interruzione dell'alimentazione durante o poco dopo l'esecuzione di dpkg.


Quindi, aggiungo solo force-unsafe-ioa /etc/dpkg/dpkg.cfg , e basta?
Tshepang,

1
Al momento non ho una Linux box funzionante (errore PSU) ma echo "force-unsafe-io" > /etc/dpkg/dpkg.cfg.d/force-unsafe-iodovrebbe funzionare. Oppure puoi aggiungerlo al file di configurazione principale di dpkg che penso sia /etc/dpkg/dpkg.cfg .
Arrowmaster,

3
Ho cronometrato con e senza questa opzione, e non c'era alcun cambiamento evidente nelle prestazioni.
Tshepang,

L'hai provato con Eatmydata? Inoltre, quando ho iniziato a utilizzare l'opzione force-unsafe-io all'interno dei chroot del mio pbuilder, ricordo una differenza molto evidente.
Arrowmaster,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.