NOME¶
deb-control - formato del file principale di controllo dei pacchetti Debian
SINTASSI¶
control
DESCRIZIONE¶
Ogni pacchetto Debian contiene il file principale «control» che
contiene un certo numero di campi oppure di commenti quando la riga inizia con
«#». Ogni campo inizia con un'etichetta, quale
Package
o
Version (le maiuscole e minuscole non fanno differenza), seguita da
due punti («:») e dal corpo del campo. I campi sono delimitati solo
dalle etichette di campo. In altre parole, il testo del campo può essere
lungo diverse righe, ma gli strumenti di installazione generalmente uniscono
le righe quando elaborano il corpo del campo (eccetto nel caso del campo
Description, vedere in seguito).
CAMPI OBBLIGATORI¶
- Package: nome pacchetto
- Il valore di questo campo determina il nome del pacchetto e
viene usato dalla maggior parte degli strumenti di installazione per
generare i nomi dei file.
- Version: stringa-versione
- Tipicamente, questo è il numero di versione originale
del pacchetto in qualsiasi forma usata dall'autore del programma. Può
anche includere un numero di revisione Debian (per i pacchetti non
nativi). Il formato e l'algoritmo di ordinamento esatti sono descritti in
deb-version(5).
- Maintainer: nomecompleto-email
- Dovrebbe essere nel formato «Tizio Caio
<tcaio@foo.com>» ed è tipicamente la persona che ha creato
il pacchetto, piuttosto che l'autore del software che è stato
impacchettato.
- Description: descrizione-breve
- descrizione-lunga
Il formato per la descrizione del pacchetto prevede un breve riassunto nella
prima riga (dopo il campo «Description»). Le righe seguenti
dovrebbero essere usate per una descrizione più lunga e dettagliata.
Ogni riga della descrizione lunga deve essere preceduta da uno spazio e le
righe vuote nella descrizione lunga devono contenere un unico
«.» che segue lo spazio precedente.
CAMPI OPZIONALI¶
- Section: sezione
- Questo è un campo generico che assegna al pacchetto
una categoria in base al software che esso installa. Alcune sezioni comuni
sono: «utils», «net», «mail»,
«text», «x11», ecc.
- Priority: priorità
- Imposta l'importanza di questo pacchetto in relazione
all'intero sistema. Priorità comuni sono: «required»,
«standard», «optional», «extra», ecc.
In Debian, i campi
Section e
Priority hanno un insieme definito di
valori accettati in base al manuale Debian Policy. È possibile ottenere
un elenco di tali valori dalla versione più recente del pacchetto
debian-policy.
- Essential: yes|no
- Questo campo è solitamente necessario solamente quando
la risposta è yes. Denota un pacchetto che è richiesto
per il corretto funzionamento del sistema. dpkg o qualsiasi altro
strumento di installazione non permetterà che un pacchetto
Essential venga rimosso (almeno non senza usare una delle opzioni
di forzatura).
- Architecture: arch|all
- L'architettura specifica per quale tipo di hardware è
stato compilato questo pacchetto. Architetture comuni sono:
«i386», «m68k», «sparc», «alpha»,
«powerpc», ecc. Notare che l'opzione all è pensata
per pacchetti che sono indipendenti dall'architettura. Alcuni esempi di
questi pacchetti sono gli script di shell o Perl e la documentazione.
- Origin: nome
- Il nome della distribuzione da cui ha origine questo
pacchetto.
- Bugs: url
- L'url per questo pacchetto nel sistema di
tracciamento dei bug. Il formato attualmente utilizzato è
tipo-bts ://indirizzo-bts, come in
debbugs://bugs.debian.org.
- Homepage: url
- L'url della home page del progetto originale.
- Tag: elenco-etichette
- Elenco di etichette che descrivono le qualità del
pacchetto. La descrizione e l'elenco delle etichette supportate possono
essere trovati nel pacchetto debtags.
- Multi-Arch:
same|foreign|allowed
- Questo campo viene usato per indicare come questo pacchetto
dovrebbe comportarsi nelle installazioni multi-arch. Il valore same
significa che il pacchetto è co-installabile insieme a sé
stesso, ma non deve essere usato per soddisfare le dipendenze di un
qualsiasi pacchetto di un'architettura diversa dalla propria. Il valore
foreign significa che il pacchetto non è co-installabile
insieme a sé stesso, ma può soddisfare le dipendenze di un
pacchetto di un'architettura diversa dalla propria. Il valore
allowed permette alle dipendenze inverse di indicare nel loro campo
Depends di accettare un pacchetto da un'architettura diversa, ma non ha
altri effetti.
- Source: nome-sorgente
- Il nome del pacchetto sorgente da cui deriva questo
pacchetto binario, se è differente rispetto al nome del pacchetto
stesso.
- Subarchitecture: valore
- Kernel-Version: valore
- Installer-Menu-Item: valore
- Questi campi sono usati dall'installatore Debian e non sono
solitamente necessari. Per maggiori dettagli su di essi, guardare il file
/usr/share/doc/debian-installer/devel/modules.txt nel pacchetto
debian-installer.
- Depends: elenco-pacchetti
- Elenco di pacchetti che sono richiesti da questo pacchetto
per fornire una quantità non banale di funzionalità. Il software
di manutenzione dei pacchetti non permetterà l'installazione di un
pacchetto se non sono installati quelli elencati nel suo campo
Depends, almeno non senza usare le opzioni di forzatura. Durante
un'installazione gli script postinst dei pacchetti elencati nei campi
Depends: sono eseguiti prima di quelli dei pacchetti che dipendono da
essi. Al contrario, durante una rimozione, lo script prerm di un pacchetto
viene eseguito prima di quelli dei pacchetti elencati nel suo campo
Depends.
- Pre-Depends: elenco-pacchetti
- Elenco di pacchetti che devono essere installati e
configurati prima che questo pacchetto possa essere installato. È
usato generalmente nel caso in cui questo pacchetto richieda un altro
pacchetto per l'esecuzione del suo script preinst.
- Recommends: elenco-pacchetti
- Elenca i pacchetti che dovrebbero essere presenti insieme a
questo in tutte le installazioni tranne quelle più particolari. Il
software di manutenzione dei pacchetti avvisa l'utente se cerca di
installare un pacchetto senza quelli elencati nel suo campo
Recommends.
- Suggests: elenco-pacchetti
- Elenca i pacchetti che sono correlati con questo e che
forse ne aumentano l'utilità, ma senza i quali l'installazione del
pacchetto è perfettamente ragionevole.
La sintassi dei campi
Depends,
Pre-Depends,
Recommends e
Suggests è un elenco di gruppi di pacchetti alternativi. Ogni
gruppo è un elenco di pacchetti separati da una barra verticale (o
«pipe»): «|». I gruppi sono separati da virgole. Le
virgole devono essere lette come «AND» e le pipe come
«OR», con le pipe che hanno la precedenza. Ogni nome di pacchetto
è seguito opzionalmente da un numero di versione specificato tra
parentesi.
Un numero di versione può iniziare con un «>>», nel qual
caso qualsiasi versione successiva soddisferà la condizione, e può
specificare o omettere il numero di revisione del pacchetto Debian (separato
da un trattino). Le relazioni tra le versioni accettate sono
«>>» per maggiore di, «<<» per minore di,
«>=» per maggiore o uguale a, «<=» per minore o
uguale a e «=» per uguale a.
- Breaks: elenco-pacchetti
- Elenca i pacchetti che vengono resi difettosi da questo,
per esempio portando alla luce bug quando essi fanno affidamento su
questo. Il software di manutenzione dei pacchetti non permette di
configurare pacchetti difettosi; generalmente la soluzione è di
aggiornare i pacchetti elencati in un campo Breaks.
- Conflicts: elenco-pacchetti
- Elenca i pacchetti che vanno in conflitto con questo, per
esempio perché contengono file con nomi identici. Il software di
gestione dei pacchetti non permette di avere pacchetti in conflitto
installati contemporaneamente. Due pacchetti che vanno in conflitto
dovrebbero entrambi includere una riga Conflicts che indica
l'altro.
- Replaces: elenco-pacchetti
- Elenco di file di pacchetti che questo rimpiazza. È
usato per permettere a questo pacchetto di sovrascrivere i file di un
altro pacchetto, ed è solitamente usato con il campo Conflicts
per forzare la rimozione dell'altro pacchetto se questo ha anche gli
stessi file di quello in conflitto.
- Provides: elenco-pacchetti
- Questo è un elenco di pacchetti virtuali forniti da
questo pacchetto. Solitamente viene usato nel caso in cui svariati
pacchetti forniscano tutti lo stesso servizio. Per esempio, sendmail ed
exim possono fare da server di posta e perciò forniscono un pacchetto
comune («mail-transport-agent») dal quale possono dipendere
altri pacchetti. Ciò permette a sendmail o exim di essere un'opzione
valida per soddisfare la dipendenza; inoltre così non è
necessario che i pacchetti che dipendono da un server di posta sappiano i
nomi di tutti i pacchetti che ne contengono uno e che li elenchino
separandoli con «|».
La sintassi di
Breaks,
Conflicts,
Replaces e
Provides è un elenco di nomi di pacchetto, separati da virgole (e
opzionalmente spazi bianchi). Nei campi
Breaks e
Conflicts, la
virgola deve essere letta come «OR». Per i campi
Breaks,
Conflicts e
Replaces, può anche essere specificata una
versione opzionale con la stessa sintassi descritta sopra.
- Built-Using: elenco-pacchetti
- Questo campo elenca pacchetti sorgente extra che sono stati
usati durante la compilazione di questo pacchetto binario. È
un'indicazione per il software di manutenzione degli archivi che questi
pacchetti sorgente aggiuntivi devono essere conservati fintanto che questo
pacchetto binario è mantenuto. Questo campo deve essere un elenco di
nomi di pacchetti sorgente con una relazione di versione stringente (=).
Notare che è probabile che il software di manutenzione degli archivi
rifiuti di accettare il caricamento di un pacchetto che dichiara una
relazione Built-Using che non può essere soddisfatta
dall'archivio.
ESEMPIO¶
# Commento
Package: grep
Essential: yes
Priority: required
Section: base
Maintainer: Wichert Akkerman <wakkerma@debian.org>
Architecture: sparc
Version: 2.4-1
Pre-Depends: libc6 (>= 2.0.105)
Provides: rgrep
Conflicts: rgrep
Description: GNU grep, egrep and fgrep.
The GNU family of grep utilities may be the "fastest grep in the west".
GNU grep is based on a fast lazy-state deterministic matcher (about
twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper
search for a fixed string that eliminates impossible text from being
considered by the full regexp matcher without necessarily having to
look at every character. The result is typically many times faster
than Unix grep or egrep. (Regular expressions containing backreferencing
will run more slowly, however).
VEDERE ANCHE¶
deb(5),
deb-version(5),
debtags(1),
dpkg(1),
dpkg-deb(1).