Product SiteDocumentation Site

6.8. Aggiornamenti automatici

Visto che Falcot Corp ha molti computer ma una manodopera limitata, i suoi amministrazioni cercano di rendere gli aggiornamenti il più automatici possibili. I programmi incaricati di tali processi devono perciò essere eseguiti senza intervento umano.

6.8.1. Configurare dpkg

Come è stato già detto (vedere il riquadro APPROFONDIMENTI Evitare le domande del file di configurazione), dpkg può essere impostato per non chiedere conferma quando sostituisce un file di configurazione (con le opzioni --force-confdef --force-confold). Le interazioni, tuttavia, possono essere richieste da altre tre fonti: alcune vengono da APT stesso, altre sono gestite da debconf, e alcuni avvengono sulla riga di comando a causa di script di configurazione dei pacchetti.

6.8.2. Configurare APT

Nel caso di APT è semplice: l'opzione -y (o --assume-yes) dice ad APT di considerare la risposta a qualsiasi sua domanda un «sì».

6.8.3. Configurare debconf

Il caso di debconf merita ulteriori dettagli. Questo programma è stato, fin dal suo principio, progettato per controllare l'importanza e la quantità di domande mostrate all'utente, così come il modo in cui vengono visualizzate. Ecco perché la sua configurazione richiede una priorità minima per le domande; solo le domande con priorità superiore alla minima vengono visualizzate. debconf imposta la risposta predefinita (impostata dal manutentore del pacchetto) per le domande che si decide di saltare.
Un altro elemento di configurazione rilevante è l'interfaccia usata dal front-end. Se si seleziona noninteractive tra le scelte date, tutte le interazioni utente sono disabilitate. Se il pacchetto cerca di visualizzare una nota informativa, essa verrà inviata all'amministratore tramite email.
Per riconfigurare debconf, si usa il programma dpkg-reconfigure nel pacchetto debconf; il relativo comando è dpkg-reconfigure debconf. Si noti che i valori configurati possono essere temporaneamente modificati con le variabili di ambiente quando necessario (ad esempio, DEBIAN_FRONTEND controlla l'interfaccia, come documentato nella pagina del manuale debconf(7)).

6.8.4. Gestire interazioni a riga di comando

L'ultima sorgente di interazioni, e la più difficile da eliminare, sono gli script di configurazione eseguiti da dpkg. Sfortunatamente non c'è una soluzione standard, e non c'è alcuna risposta nettamente migliore di un'altra.
L'approccio comune è quello di sopprimere lo standard input reindirizzando il contenuto vuoto di /dev/null in esso con il comando comando </dev/null, o di alimentarlo con un flusso infinito di nuove righe. Nessuno di questi metodi è affidabile al 100%, ma in genere portano all'uso delle risposte predefinite, dal momento che la maggior parte degli script considera la mancanza di una risposta come un'accettazione dei valori predefiniti.

6.8.5. La combinazione miracolosa

Combinando gli elementi precedenti, è possibile progettare un piccolo ma piuttosto affidabile script che può gestire gli aggiornamenti automatici.

Esempio 6.4. Script di aggiornamento non interattivo

export DEBIAN_FRONTEND=noninteractive
yes '' | apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" dist-upgrade