На жаль, Fuser не робить для вас багато чого, коли ви працюєте в різних непривілейованих контейнерах простору імен, таких як lxc.
Крім того, aptdcon не встановлений за замовчуванням (принаймні 18.04) і фоновим завданням є в черзі, щоб ви втратили серіалізацію. Це не є непереборним, але це означає, що ваша автоматизація повинна мати певний спосіб уникнути помилок зграї в apt під час встановлення aptdcon, і вам потрібно буде мати певні петлі очікування для всього, що потрібно для серіалізації після встановлення пакетів через aptdcon якщо тільки для цього вже немає якогось прапора.
Те, що працює, є отари. Це також має працювати над NFS і т. Д., Оскільки він використовує блокування файлової системи так само, як це робиться, лише з параметром -w секунд він буде чекати на ваш замок, а не видавати помилку.
Отже, слідуючи моделі обгортки, додайте це як apt-get in / usr / local / bin / та поділіться подалі.
Це також має перевагу обмеження IO, не дозволяючи паралелізму на apt, так що ви можете дозволити оновлення тригера cron опівночі скрізь без побиття диска.
#!/bin/bash
exec /usr/bin/flock -w 900 -F --verbose /var/cache/apt/archives/lock /usr/bin/apt-get $@
Дуже приємним і простим запитом на функцію apt-get буде прапор -w для переходу до блокування блокування / очікування.
sudo apt-get install packagename && sudo apt-get update
і вони відбуватимуться автоматично один за одним.