Project

General

Profile

Actions

Come usare il file debian/config ed i comandi di Debconf

In questa pagina sono raccolti alcune note sparse relative all'utilizzo di debconf per la creazione di pacchetti Debian, che sono state raccolte in un unico spazio per cercare di fornire un po' di supporto a chi, come me, ha dovuto averci a che fare ed è stato costretto a raccapezzare le informazioni qua e là, soprattutto andando a vedere i vari config e postinst dei pacchetti.

Anzitutto un po' di informazioni generali, il sistema di debconf utilizza due file, debian/templates e debian/config. Il primo contiene le definizioni delle domande da fare (queste sono di vari tipi) ed il secondo è uno script di shell eseguito prima dell'installazione del pacchetto, che si incarica di fare le domande ed eseguire le configurazioni necessarie.

Tutte le domande sono identificate da una stringa della forma nome-pacchetto/nome-domanda, che sono gli oggetti manipolati da una serie di funzioni di shell definite in /usr/share/debconf/confmodule (una delle prime operazioni da fare nello script config è un source di questo file). Con questi comandi si compiono le operazioni di controllo di debconf. I comandi principali sono:

  • db_input, che prenota la richiesta di una risposta (attenzione, la prenota e basta, non la esegue!), che ha la sintassi:
    db_input priorita nome-pacchetto/nome-domanda
    
  • db_go, che esegue immediatamente la richiesta delle risposte prenotate:
    db_go
    
  • db_get, che ottine il valore corrente di una risposta:
    db_get nome-pacchetto/nome-domanda
    

Un primo ostacolo che potete incontrare è quello di far dimenticare un valore già assegnato, in modo che questo possa venire richiesto da db_input. Il comando dh_set infatti permette di riassegnare un valore, anche nullo, ma se il valore è stato già assegnato ad un successivo db_input questo non sarà chiesto nuovamente.

Updated by Simone Piccardi over 12 years ago · 4 revisions