Leider leistet fuser nicht viel für Sie, wenn Sie in verschiedenen nicht privilegierten Namespace-Containern wie lxc arbeiten.
Außerdem ist aptdcon nicht standardmäßig installiert (mindestens am 18.04.) Und hinterlässt Ihre Aufgabe in einer Warteschlange, sodass Sie die Serialisierung verlieren. Dies ist nicht unüberwindbar, aber es bedeutet, dass Ihre Automatisierung bei der Installation von aptdcon einige Möglichkeiten haben muss, um Flockfehler in apt zu vermeiden, und dass Sie eine Art Warteschleife für alles benötigen, was Sie nach der Installation von Paketen über aptdcon serialisieren müssen es sei denn, es gibt bereits eine Art Flagge dafür.
Was funktioniert, ist Herde. Dies sollte auch über NFS usw. funktionieren, da die Dateisystemsperrung auf die gleiche Weise wie bei apt verwendet wird. Nur mit dem Parameter -w seconds wird auf Ihre Sperre gewartet, anstatt einen Fehler auszulösen.
Fügen Sie dies dem Wrapper-Modell folgend als apt-get in / usr / local / bin / hinzu und geben Sie es frei.
Dies hat auch den Vorteil, dass die Anzahl der E / A-Vorgänge begrenzt wird, da bei apt keine Parallelität zugelassen wird, sodass Sie Aktualisierungen von cron überall um Mitternacht auslösen können, ohne die Festplatte zu beschädigen.
#!/bin/bash
exec /usr/bin/flock -w 900 -F --verbose /var/cache/apt/archives/lock /usr/bin/apt-get $@
Eine sehr nette und einfache Feature-Anfrage für apt-get wäre ein -w-Flag, um zu einer Blockierungs- / Wartesperre zu wechseln.
sudo apt-get install packagename && sudo apt-get update
und sie werden automatisch nacheinander passieren.