Automatisering av installationer med aptitude

Vissa deb-paket envisas med att fråga saker under installation, vilket gör att man måste ta till ett trick för att kunna installera dem via skript

Varje gång en Cloudnet-server startar om återgår den till standardläge med endast standardapplikationerna installerade. För använda ytterligare applikationer lägger man till installationen av dem i startskriptet.

I det här exemplet installerar jag racoon, som av någon anledning ska fråga om man vill konfigurera racoon med konfigurationsfil, eller med det obskyra racoon-tool (vem som nu vill göra det).

Installera debconf-utils som behövs för att göra inställningar för paket

root@vps:~# aptitude -y install debconf-utils

Installera paketet och svara på de frågor som dyker upp:

root@vps:~# aptitude -y install racoon

När paketet är installerat läser man ut valen som är gjorda med kommandot apt-get-selections

root@vps:~# debconf-get-selections | grep racoon > racoon-selections.txt

Nu kan vi ta bort paketet vi installerade för att testa att det fungerar att installera det automatiskt:

root@vps:~# dpkg --purge racoon

När paketet är borttaget med alla tillhörande inställningar börjar vi med att läsa in valen vi tidigare läste ut till en separat fil:

root@vps:~# cat racoon-selections.txt | debconf-set-selections

Om vi nu installerar paketet på nytt finns redan svaren på frågan i paketsystemets databas, och vi slipper svara på frågor:

root@vps:~# aptitude -y install racoon

Sätter vi ihop allting till ett shellskript blir det på följande sätt:

#/bin/sh
aptitude -y install debconf-utils
cat racoon-selections.txt | debconf-set-selections
aptitude -y install racoon