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|no
- 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. Il valore no è il valore predefinito quando
il campo viene omesso, nel qual caso aggiungere il campo con un valore
no esplicito è generalmente non necessario.
- 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).