Creare Un Pacchetto Debian [Parte 3]

Negli articoli precedenti abbiamo visto come creare un pacchetto .deb, che possa gestire le dipendenze e i file di configurazione. Potete trovare in queste pagine la parte uno e la parte due.

In particolare abbiamo visto l’utilizzo di due importanti file: control e conffiles.

Vediamo ora come sia possibile creare delle domande durante il processo di installazione, utilizzando altri file da posizionalre nella directory DEBIAN del nostro applicativo. Il primo file da prendere in considerazione è il file templates, dove saranno riportate tutte le domande di cui abbiamo bisogno. Di seguito è riportato il nostro file template che prevede due sole domande:


Template: ziogeek-app/ziogeek
Type: boolean
Default: true
Description: Zio geek è la tua rivista on line preferita ?
Nel campo type puoi usare i seguenti valori:
[select,multiselect,string,boolean,note,text,password]
.
Anche qui niente righe vuote

Template: ziogeek-app/gradimento
Type: select
Choices: Moltissimo, Molto, Poco, Per Niente
Default: Moltissimo
Description: Ti è piaciuto l’articolo ?
Facci sapere sapere la tua opinione anche nei commenti sul sito.

I campi del file template sono:

  • Template: è l’identificativo della domanda (preceduto dal nome del paccheto)
  • Type: è il tipo di domanda e può assumere diversi valori, tra i più importanti:
    • select: una lista di opzioni tra cui sceglierne una
    • multiselect: una lista di opzioni tra cui sceglierne un numero qualsiasi
    • string: una sequenza di caratteri qualsiasi
    • boolean: un valore vero falso
  • Choices: le scelte per i tipi select e multiselect
  • Default: il valore di default
  • Description: il testo della domanda

Queste domande saranno poi poste in fase di configurazione del pacchetto. La fase di configurazione del pacchetto viene affidata a un file chiamato config.. Di seguito riportiamo un semplice esempio che si occupa di porre le domande descritte prima.


#!/bin/sh

# Exit on error
set -e

# Source debconf library.
. /usr/share/debconf/confmodule

# Fai le domande
db_input low ziogeek-app/ziogeek || true
db_input low ziogeek-app/gradimento || true

# Mostra interfaccia
db_go || true

Queste informazioni che riguardano la gestione del pacchetto possono essere modificate in ogni momento successivo all’installazione del pacchetto tramite il comando dpkg-reconfigure

Gli ultimi file (di cui ci occupiamo noi) sono preinst, postinst, prerm e postrm. Come si intuisce dal nome sono script che vengono eseguiti rispettivamente prima dell’installazione, dopo l’installazione, prima della rimozione e dopo la rimozione. Devono essere eseguibili cioè avere permessi almeno (0755).

Per semplicità riportiamo solo un esempio di postinst


#!/bin/sh

# Libreria debconf.
. /usr/share/debconf/confmodule

#
db_get ziogeek-app/ziogeek
echo “Alla domanda di ziogeek hai risposto $RET”

db_get ziogeek-app/gradimento
echo “questo articolo di è piaciuto $RET”

E’ importante notare che, utilizzando la libreria debconf, è necessario inserirla come dipendenza nel file control.

Per arrivare a costruire un pacchetto veramente di qualità ci sarebbero ancora molte cose da dire, ma una trattazione completa non è lo scopo di questa guida introduttiva, per questo si rimanda alla documentazione ufficiale debian. Per chi volesse approfondire riportiamo alcuni link utili:

© 2008 Ziogeek.com

Tag: , ,