Někdy instalace některých aplikací spustí proces nebo službu z aplikace, která se automaticky spouští při instalaci. Jak nainstaluji bez jejich spuštění?
Nejlepší odpověď
Existuje trochu hackerský, ale docela spolehlivý způsob, jak toho dosáhnout, který jsem nějakou dobu používal v automatizovaném instalačním skriptu.
Nejprve vytvořte adresář, například /root/fake
, který obsahuje symbolické odkazy na /bin/true
s názvem:
initctl
invoke-rc.d
restart
start
stop
start-stop-daemon
service
deb-systemd-helper
Můžete jim také vytvořit bash skripty, které nic nedělají a vrací úspěch.
Poté vložte tento adresář na začátek $PATH
při instalaci balíčků:
PATH=/root/fake:$PATH apt-get install whatever
To pouze brání spouštění/restartování démonů, zatímco věci jako vytváření initramfs se stále dělají.
Vysvětlení
Skripty, které se spouštějí při instalaci a odstranění balíčku, se spouští invoke-rc.d
nebo jiné z uvedených příkazů pro spouštění a zastavování služeb. Neříkají jim však absolutní cesty (alespoň jsem se nesetkal s takovou, která by tomu tak byla).
Tedy vložením falešných příkazů „žádná operace“ na začátek $PATH
, skutečné příkazy nejsou nikdy volány.
Protože jsou falešné pouze příkazy používané ke spouštění/zastavování služeb, vše ostatní, zejména důležité úlohy, jako je aktualizace/vytváření obrazů initramfs, stále funguje.