Niestety fuser nie robi wiele dla ciebie, gdy pracujesz w różnych nieuprzywilejowanych kontenerach przestrzeni nazw, takich jak lxc.
Ponadto aptdcon nie jest domyślnie instalowany (przynajmniej 18.04) i ustawia zadania w tle w kolejce, co powoduje utratę serializacji. Nie jest to nie do pokonania, ale oznacza to, że twoja automatyzacja musi mieć jakiś sposób, aby uniknąć błędów kłaczków w apt podczas instalacji aptdcon, i będziesz musiał mieć jakieś pętle oczekiwania na wszystko, co potrzebujesz do serializacji po zainstalowaniu pakietów przez aptdcon chyba że istnieje już jakaś flaga.
To, co działa, to stado. Powinno to również działać w systemie plików NFS itp., Ponieważ korzysta on z blokowania systemu plików w taki sam sposób, jak apt, tylko z parametrem -w sekund będzie czekać na blokadę zamiast zgłaszać błąd.
Więc zgodnie z modelem otoki, dodaj to jako apt-get w / usr / local / bin / i udostępnij.
Ma to również tę zaletę, że ogranicza IO, ponieważ nie pozwala na równoległość apt, dzięki czemu możesz pozwolić cronowi na uruchamianie aktualizacji o północy wszędzie bez przyspieszania dysku.
#!/bin/bash
exec /usr/bin/flock -w 900 -F --verbose /var/cache/apt/archives/lock /usr/bin/apt-get $@
Bardzo ładną i prostą prośbą o funkcję dla apt-get byłaby flaga -w, aby przełączyć się na blokowanie / blokowanie oczekiwania.
sudo apt-get install packagename && sudo apt-get updatei będą następować automatycznie po sobie.