Есть немного хакерский, но довольно надежный способ сделать это, который я использовал некоторое время в сценарии автоматической установки.
Сначала создайте каталог, например /root/fake, который содержит символические ссылки на /bin/trueвызываемые:
initctl
invoke-rc.d
restart
start
stop
start-stop-daemon
service
deb-systemd-helper
Вы также можете сделать их скриптами bash, которые ничего не делают и возвращают успех.
Затем включите этот каталог в начало $PATHпри установке пакетов:
PATH=/root/fake:$PATH apt-get install whatever
Это только предотвращает запуск / перезапуск демонов, в то время как такие вещи, как создание initramfs, все еще выполняются.
объяснение
Сценарии, которые выполняются при установке и удалении пакета, выполняются invoke-rc.dили другие из упомянутых команд для запуска и остановки служб. Однако они не называют их абсолютными путями (по крайней мере, я не встречал того, который делает).
Таким образом, вставляя ложные команды «без операции» в начале $PATH, настоящие команды никогда не будут вызваны.
Поскольку подделываются только команды, используемые для запуска / остановки служб, все остальное, в частности важные задачи, такие как обновление / создание initramfs-образов, все еще работают.