¿Cómo hacer dpkg más rápido?

17

La instalación (des) paquete en un sistema Debian es terriblemente lenta, en parte porque funciona con un montón de archivos (pequeños). A falta de un almacenamiento más rápido, ¿cómo puedo acelerarlo? Estoy pensando que tal vez cargue algún directorio de alto acceso en RAM como una solución, pero ¿cómo hago eso? ¿Existe una solución 'mejor'?

tshepang
fuente
¿Qué sistema de archivos y cuántos paquetes tienes? Para directorios grandes, ext3 o superior con la dir_indexopción, o Reiser, es una mejora dramática en comparación con ext2 o ext3 sin dir_index.
Gilles 'SO- deja de ser malvado'
@Gilles Uso ext4 y tengo ~ 1400 paquetes instalados.
tshepang

Respuestas:

17

Para esta solución, necesitará una versión de dpkg de al menos 1.15.8.6.

Desde esa versión de dpkg, hay una nueva force-unsafe-ioopción que deshabilitará dpkg para llamar a sync () y similares entre cada paquete. Puede agregar esta opción a la configuración en / etc / dpkg para que siempre esté vigente.

Si tiene una versión anterior de dpkg, también puede usar eatmydata .

Y recuerde que ambas soluciones no son seguras y probablemente conducirán a la pérdida de datos si hay una falla de energía mientras dpkg se ejecuta o poco después.

Arrowmaster
fuente
Entonces, solo agrego force-unsafe-ioa /etc/dpkg/dpkg.cfg , ¿y eso es todo?
tshepang
1
No tengo una caja de Linux que funcione actualmente (falla de PSU) pero echo "force-unsafe-io" > /etc/dpkg/dpkg.cfg.d/force-unsafe-iodebería funcionar. O puede agregarlo al archivo de configuración dpkg principal que creo que es /etc/dpkg/dpkg.cfg .
Arrowmaster
3
Lo cronometré con y sin esta opción, y no hubo un cambio notable en el rendimiento.
tshepang
¿Lo probaste con eatmydata? Además, cuando comencé a usar la opción force-unsafe-io dentro de mis chroots pbuilder, recuerdo una diferencia muy notable.
Arrowmaster