Існує трохи хакітний, але досить надійний спосіб зробити це, який я деякий час використовував в сценарії автоматизованої установки.
Спочатку створіть, наприклад /root/fake
, каталог , який містить символьні посилання на /bin/true
виклик:
initctl
invoke-rc.d
restart
start
stop
start-stop-daemon
service
deb-systemd-helper
Ви також можете зробити їх скриптовими сценаріями, які нічого не роблять і не повертають успіх.
Потім включіть цей каталог внизу, $PATH
коли встановлюєте пакети:
PATH=/root/fake:$PATH apt-get install whatever
Це лише запобігає запуску / перезапуску демонів, тоді як такі речі, як створення initramfs, все ще робляться.
Пояснення
Сценарії, які виконуються при встановленні та видаленні пакета, виконують invoke-rc.d
або інші згадані команди для запуску та зупинки служб. Однак вони не називають їх абсолютними шляхами (принаймні, я не стикався з таким, який це робить).
Отже, вставляючи підроблені команди "без операції" на початку $PATH
, справжні команди ніколи не викликаються.
Оскільки підробляються лише команди, що використовуються для запуску / зупинки служб, все інше, зокрема важливі завдання, такі як оновлення / створення initramfs-зображень, все ще працюють.