Existe uma maneira um pouco agressiva, mas bastante confiável, de fazer isso que estou usando há algum tempo em um script de instalação automatizado.
Primeiro crie um diretório, por exemplo, /root/fake
, que contém links simbólicos para /bin/true
chamado:
initctl
invoke-rc.d
restart
start
stop
start-stop-daemon
service
deb-systemd-helper
Você também pode transformá-los em scripts que não fazem nada e retornam o sucesso.
Em seguida, inclua esse diretório na frente de $PATH
ao instalar os pacotes:
PATH=/root/fake:$PATH apt-get install whatever
Isso só impede que os daemons iniciem / reiniciem, enquanto coisas como criar um initramfs ainda estão sendo feitas.
Explicação
Os scripts que estão sendo executados na instalação e remoção do pacote executam invoke-rc.d
ou outros dos comandos mencionados para iniciar e parar serviços. Eles, no entanto, não os chamam de caminhos absolutos (pelo menos eu não encontrei um que faça isso).
Então, inserindo os comandos "no operation" falsificados no início de $PATH
, os comandos reais nunca são chamados.
Como somente os comandos usados para iniciar / parar serviços estão sendo falsificados, todo o resto, em particular tarefas importantes como atualização / criação de initramfs-images ainda funcionam.