Wie kann man dpkg schneller machen?

17

Die (Un) -Installation von Paketen auf einem Debian-System ist schrecklich langsam, zum Teil, weil es mit einer ganzen Reihe von (kleinen) Dateien funktioniert. Wie kann ich den Speicher beschleunigen, ohne schneller zu werden? Ich überlege, vielleicht ein Verzeichnis mit hohem Zugriff als eine Lösung in den Arbeitsspeicher zu laden, aber wie mache ich das? Gibt es eine "bessere" Lösung?

Tshepang
quelle
Welches Dateisystem und wie viele Pakete haben Sie? Für große Verzeichnisse ist ext3 oder höher mit der dir_indexOption oder Reiser eine dramatische Verbesserung im Vergleich zu ext2 oder ext3 ohne dir_index.
Gilles 'SO- hör auf böse zu sein'
@ Gilles Ich benutze ext4 und habe ~ 1400 Pakete installiert.
Tshepang

Antworten:

17

Für diese Lösung benötigen Sie eine Version von dpkg von mindestens 1.15.8.6.

Seit dieser Version von dpkg gibt es eine neue force-unsafe-ioOption, die verhindert, dass dpkg zwischen den einzelnen Paketen sync () und dergleichen aufruft. Sie können diese Option zur Konfiguration in / etc / dpkg hinzufügen, damit sie immer wirksam ist.

Wenn Sie eine ältere Version von dpkg haben, können Sie alternativ eatmydata verwenden .

Und denken Sie daran, dass beide Lösungen unsicher sind und wahrscheinlich zu Datenverlust führen, wenn während oder kurz nach der Ausführung von dpkg ein Stromausfall auftritt.

Pfeilmeister
quelle
Also, ich fügen Sie einfach force-unsafe-iozu /etc/dpkg/dpkg.cfg , und das ist es?
Tshepang
1
Ich habe derzeit keine funktionierende Linux-Box (Netzteilfehler), echo "force-unsafe-io" > /etc/dpkg/dpkg.cfg.d/force-unsafe-iosollte aber funktionieren. Oder Sie können es der Haupt-dpkg-Konfigurationsdatei hinzufügen, die meiner Meinung nach /etc/dpkg/dpkg.cfg lautet .
Arrowmaster
3
Ich habe es mit und ohne diese Option geplant, und es gab keine merkliche Änderung in der Leistung.
Tshepang
Hast du es mit eatmydata probiert? Als ich anfing, die Option force-unsafe-io in meinen pbuilder-Chroots zu verwenden, erinnere ich mich außerdem an einen sehr auffälligen Unterschied.
Arrowmaster