Terkadang menginstal beberapa aplikasi akan memulai proses atau layanan dari aplikasi yang dijalankan secara otomatis saat instalasi. Bagaimana cara menginstal tanpa memulainya?
Jawaban Terbaik
Ada cara yang sedikit meretas, tetapi cukup andal untuk melakukan ini yang telah saya gunakan untuk sementara waktu dalam skrip instalasi otomatis.
Pertama buat direktori, misalnya /root/fake
, yang berisi symlink ke /bin/true
disebut:
initctl
invoke-rc.d
restart
start
stop
start-stop-daemon
service
deb-systemd-helper
Anda juga dapat membuat skrip bash yang tidak melakukan apa-apa dan mengembalikan kesuksesan.
Kemudian sertakan direktori itu di depan $PATH
saat menginstal paket:
PATH=/root/fake:$PATH apt-get install whatever
Ini hanya mencegah daemon untuk memulai/memulai ulang, sementara hal-hal seperti membuat initramf masih dilakukan.
Penjelasan
Script yang sedang dieksekusi pada saat instalasi dan penghapusan paket mengeksekusi invoke-rc.d
atau perintah lain yang disebutkan untuk memulai dan menghentikan layanan. Namun mereka tidak memanggilnya dengan jalur absolut (setidaknya saya belum pernah menemukan yang seperti itu).
Jadi dengan memasukkan perintah “tidak ada operasi” palsu di awal $PATH
, perintah sebenarnya tidak pernah dipanggil.
Karena hanya perintah yang digunakan untuk memulai/menghentikan layanan yang dipalsukan, yang lainnya, khususnya tugas penting seperti memperbarui/membuat initramfs-images masih berfungsi.