Desafortunadamente, el fusor no hace mucho por usted cuando está ejecutando en diferentes contenedores de espacios de nombres sin privilegios como lxc.
Además, aptdcon no está instalado de manera predeterminada (al menos en 18.04) y pone en segundo plano su tarea en una cola para que pierda la serialización. Esto no es insuperable, pero significa que su automatización necesita tener alguna forma de evitar errores de flock en apt al instalar aptdcon, y necesitará tener algún tipo de bucles de espera para cualquier cosa que necesite serializar después de instalar paquetes a través de aptdcon a menos que ya haya algún tipo de bandera para eso.
Lo que funciona es rebaño. Esto también debería funcionar sobre NFS, etc., ya que utiliza el bloqueo del sistema de archivos de la misma manera que lo hace apt, solo con el parámetro -w segundos esperará en su bloqueo en lugar de arrojar un error.
Entonces, siguiendo el modelo de contenedor, agregue esto como apt-get in / usr / local / bin / y comparta.
Esto también tiene el beneficio de limitar IO al no permitir el paralelismo en apt para que pueda permitir que cron se active a medianoche en todas partes sin golpear el disco.
#!/bin/bash
exec /usr/bin/flock -w 900 -F --verbose /var/cache/apt/archives/lock /usr/bin/apt-get $@
Una solicitud de función muy agradable y simple para apt-get sería una bandera -w para cambiar a un bloqueo / bloqueo de espera.
sudo apt-get install packagename && sudo apt-get update
y sucederán automáticamente uno después del otro.