Il existe un moyen un peu hackish, mais assez fiable, de le faire, que j'utilise depuis longtemps dans un script d'installation automatisée.
Commencez par créer un répertoire /root/fake
contenant , par exemple , des liens symboliques vers /bin/true
:
initctl
invoke-rc.d
restart
start
stop
start-stop-daemon
service
deb-systemd-helper
Vous pouvez également leur faire des scripts bash qui ne font rien et renvoient le succès.
Ensuite, incluez ce répertoire au $PATH
début de lors de l'installation des packages:
PATH=/root/fake:$PATH apt-get install whatever
Cela empêche uniquement les démons de démarrer / redémarrer, alors que la création d'un initramfs est toujours en cours.
Explication
Les scripts en cours d’exécution lors de l’installation et de la suppression des packages exécutent, invoke-rc.d
ou d’autres, les commandes mentionnées pour démarrer et arrêter les services. Cependant, ils ne les appellent pas avec des chemins absolus (du moins, je n'en ai pas rencontré un).
Donc, en insérant les fausses commandes "aucune opération" au début de $PATH
, les commandes réelles ne sont jamais appelées.
Etant donné que seules les commandes utilisées pour démarrer / arrêter les services sont simulées, tout le reste, en particulier les tâches importantes telles que la mise à jour / la création d'initramfs-images, fonctionnent toujours.