Есть немного хакерский, но вполне надежный способ сделать это, который я использовал некоторое время в сценарии автоматической установки.
Сначала создайте каталог, например /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
Это предотвращает запуск / перезапуск демонов, хотя делаются попытки создания initramf.
Сценарии которые выполняются при установке и удалении пакета, выполняют invoke-rc.d или другие упомянутые команды для запуска и остановки служб. Однако они не называют их абсолютными путями (по крайней мере, я не встречал того, что делает).
Итак, вставив поддельные команды «без операции» в начале $PATH, реальный
Поскольку только команды, используемые для запуска / остановки служб, подделываются, все еще, в частности, важные задачи, такие как обновление / создание initramfs-изображений, все еще работают.
Я решил эту проблему, выполнив следующие шаги: https://github.com/dnschneid/crouton/wiki/Common-issues-and-reporting.
Удалите любой существующий установщик из папки «Загрузки». Извлеките новый установщик
Откройте оболочку crosh (Ctrl-Alt-T, затем введите shell)
Выясните имя вашего chroot (s).
] Если вы не знаете, sudo edit-chroot -a (на недавнем достаточно крутоне), или sudo ls /usr/local/chroots предоставит вам список имен chroot. Запустите обновление: sudo sh ~/Downloads/crouton -n chrootname -u, где chrootname - это имя вашего chroot, убедитесь, что ошибок нет. Перезагрузка: полностью завершение работы и перезагрузка. Попробуйте снова запустить chroot.
Я решил эту проблему, выполнив следующие шаги: https://github.com/dnschneid/crouton/wiki/Common-issues-and-reporting.
Удалите любой существующий установщик из папки «Загрузки». Извлеките новый установщик
Откройте оболочку crosh (Ctrl-Alt-T, затем введите shell)
Выясните имя вашего chroot (s).
] Если вы не знаете, sudo edit-chroot -a (на недавнем достаточно крутоне), или sudo ls /usr/local/chroots предоставит вам список имен chroot. Запустите обновление: sudo sh ~/Downloads/crouton -n chrootname -u, где chrootname - это имя вашего chroot, убедитесь, что ошибок нет. Перезагрузка: полностью завершение работы и перезагрузка. Попробуйте снова запустить chroot.