Indice
Questa sezione contiene una panoramica generale degli strumenti disponibili per i maintainer. Ciò che segue non è affatto completo o definitivo, ma solo una guida per alcuni degli strumenti più popolari.
Gli strumenti del maintainer Debian hanno lo scopo di aiutare gli sviluppatori e liberare il loro tempo per attività critiche. Come dice Larry Wall, c'è più di un modo per farlo.
Alcune persone preferiscono utilizzare strumenti gli di manutenzione dei pacchetti ad alto livello e altri no. Debian è ufficialmente agnostica su questo problema, qualsiasi strumento che ottiene il lavoro fatto va bene. Pertanto, questa sezione non intende indicare a nessuno quali strumenti deve adottare o come devono condurre le loro funzioni di mantenimento del pacchetto. Né è destinata a promuovere qualsiasi particolare strumento al fine di escludere uno strumento in competizione.
La maggior parte delle descrizioni di questi pacchetti vengono dalle
descrizioni effettive dei pacchetti stessi. Ulteriori informazioni possono
essere trovate nella documentazione del pacchetto stesso. È anche possibile
visualizzare ulteriori informazioni con il comando apt-cache show
nome-pacchetto
.
I seguenti strumenti sono praticamente obbligatori per qualsiasi maintainer.
dpkg-dev
contiene gli strumenti
(compreso dpkg-source) necessari per spacchettare, creare
e caricare pacchetti sorgenti Debian. Queste utilità contengono la
fondamentale funzionalità di basso livello necessaria per creare e
manipolare i pacchetti; in quanto tali, essi sono essenziali per qualsiasi
maintainer Debian.
debconf
fornisce un'interfaccia
coerente per la configurazione di pacchetti interattiva.È indipendente
dall'interfaccia utente, che consente agli utenti finali di configurare i
pacchetti con un'interfaccia testuale, un'interfaccia HTML o un'interfaccia
con riquadri di dialogo. Nuove interfacce possono essere aggiunte come
moduli.
È possibile trovare la documentazione per questo pacchetto nel pacchetto
debconf-doc
.
Molti ritengono che questo sistema dovrebbe essere utilizzato per tutti i
pacchetti che richiedono una configurazione interattiva, si consulti Sezione 6.5, «Gestione della configurazione con debconf
». debconf
non è attualmente richiesto dalla policy di Debian, ma ciò potrebbe cambiare
in futuro.
Secondo il Dizionario On-line di Informatica (FOLDOC), «lint» è un processore di linguaggio Unix C che effettua verifiche più approfondite sul codice rispetto ai normali compilatori C. Gli strumenti di controllo dei pacchetti aiutano i maintainer trovando nei loro pacchetti automaticamente i problemi più comuni e le violazioni delle policy.
lintian
studia approfonditamente i
pacchetti Debian e fornisce informazioni su bug e violazioni delle
policy. Contiene controlli automatici per molti aspetti della policy Debian
così come alcuni controlli per gli errori più frequenti.
Si dovrebbe ottenere periodicamente il più nuovo lintian
da unstable
e
controllare tutti i propri pacchetti. Si noti che l'opzione
-i
fornisce spiegazioni dettagliate di ciò che ogni
errore o avvertimento significa, quale sia la sua base nella Policy e come
generalmente si può risolvere il problema.
Si consulti Sezione 5.3, «Testare del pacchetto» per maggiori informazioni su come e quando utilizzare Lintian.
È anche possibile visualizzare un riepilogo di tutti i problemi segnalati da
Lintian sui vostri pacchetti su https://lintian.debian.org/. Questi
rapporti contengono gli ultimi output di lintian per
l'intera distribuzione di sviluppo (unstable
).
debdiff (dal pacchetto devscripts
, Sezione A.6.1, «devscripts
»)
confronta elenchi di file e file di controllo di due pacchetti. Si tratta di
un test di regressione semplice, in quanto aiuterà a notare se il numero di
pacchetti binari è cambiato dall'ultima operazione di caricamento, o se
qualcosa è cambiato nel file di controllo. Naturalmente, alcune delle
modifiche che segnalerà saranno a posto, ma può aiutare a prevenire vari
incidenti.
È possibile eseguirlo su un paio di pacchetti binari:
debdiff pacchetto_1-1_arch.deb package_2-1_arch.deb
O anche su un paio di file di modifiche:
debdiff pacchetto_1-1_arch.changes package_2-1_arch.changes
Per ulteriori informazioni consultare debdiff(1).
Gli strumenti per la compilazione dei pacchetti rendono il processo di
scrittura dei file debian/rules
più facile. Per
ulteriori informazioni sul motivo per cui questi potrebbero o non potrebbero
essere desiderati si consulti Sezione 6.1.1, «Script di supporto».
debhelper
è una raccolta di
programmi che possono essere utilizzati in debian/rules
per automatizzare compiti comuni correlati con la compilazione di pacchetti
Debian binari. debhelper
include
programmi per installare vari file all'interno del pacchetto, comprimere i
file, correggere i permessi dei file e integrare il pacchetto nel sistema
dei menù Debian.
A differenza di altri approcci, debhelper
è suddiviso in diversi piccoli,
semplici comandi che agiscono in modo coerente. Come tale, esso permette un
controllo più capillare di alcuni degli altri strumenti per debian/rules.
Ci sono una serie di piccoli pacchetti aggiuntivi per debhelper
, troppo effimeri da documentare. È
possibile vedere l'elenco della maggior parte di loro invocando
apt-cache search ^dh-
.
Il pacchetto dh-make
contiene
dh_make, un programma che crea uno scheletro di file
necessari per compilare un pacchetto Debian a partire da un albero
sorgente. Come suggerisce il nome, dh_make è una
riscrittura di debmake
ed i relativi
file di template usano i programmi dh_* da debhelper
.
Mentre i file di rules generati da dh_make sono, in generale, una base sufficiente per un pacchetto funzionante, sono ancora solo le basi: il maintainer ha ancora l'onere per sintonizzare con precisione i file generati e rendere il pacchetto completamente funzionante e conforme alla Policy.
equivs
è un altro pacchetto per fare
i pacchetti. È spesso suggerito per uso locale, se si ha bisogno di creare
un pacchetto semplicemente per soddisfare le dipendenze. A volte è anche
utilizzato quando si costruiscono «meta-pacchetti», che sono pacchetti il
cui unico scopo è quello di dipendere da altri pacchetti.
I seguenti pacchetti aiutano con il processo di compilazione del pacchetto, pilotando dpkg-buildpackage così come gestendo i compiti di supporto.
git-buildpackage
fornisce la
capacità di iniettare o importare pacchetti sorgenti Debian in un repository
GIT, di compilare un pacchetto Debian dal repository GIT, ed aiuta a
integrare i cambiamenti del codice originale nel repository.
Queste utilità forniscono un'infrastruttura per facilitare l'uso del GIT da
parte del maintainer Debian. Questo permette di mantenere in GIT rami
separati di un pacchetto per le distribuzioni stable
,
unstable
e possibilmente experimental
,
con gli altri benefici di un sistema di controllo di versioni.
Il pacchetto e lo script debootstrap
permettono di avviare un sistema Debian di base in qualsiasi parte del
proprio filesystem. Per sistema di base, si intende il minimo dei pacchetti
necessari al funzionamento e ad installare il resto del sistema.
Avere un sistema come questo può essere utile in molti modi. Ad esempio, è possibile effettuare chroot se si vuole testare le proprie dipendenze di compilazione. Oppure si può verificare come il pacchetto si comporta quando installato in un sistema di base puro. Gli strumenti di compilazione chroot usano questo pacchetto; si veda di seguito.
pbuilder
costruisce un sistema
chroot, e compila un pacchetto all'interno del chroot. È molto utile per
controllare che dipendenze di compilazione di un pacchetto siano corrette e
per essere certi che dipendenze non necessarie o sbagliate non esistano nel
pacchetto risultante.
Un pacchetto correlato è pbuilder-uml
, che va anche oltre, facendo la
compilazione all'interno di un ambiente User Mode Linux.
sbuild
è un altro strumento per
creazione di pacchetti automatizzato. Anch'esso può utilizzare ambienti
chroot. Può essere utilizzato da solo, o come parte di un ambiente di
compilazione distribuita in rete. In quest'ultimo caso, è parte del sistema
utilizzato dagli autori di port per costruire pacchetti binari per tutte le
architetture disponibili. Si consulti Sezione 5.10.3.3, «wanna-build
» per
maggiori informazioni, e https://buildd.debian.org/ per vedere il
sistema in azione.
I seguenti pacchetti consentono di automatizzare e semplificare il processo di caricamento dei pacchetti nell'archivio ufficiale.
dupload
è un pacchetto e uno script
per caricare automaticamente i pacchetti Debian nell'archivio Debian, per
registrare il caricamento, e per inviare email sul caricamento di un
pacchetto. È possibile configurarlo per nuovi repository o metodi per il
caricamento.
Il pacchetto e lo script dput
fanno
la stessa cosa di dupload
, ma in un
modo diverso. Ha alcune caratteristiche in più rispetto a dupload
, come ad esempio la possibilità di
verificare la firma GnuPG e i codici di controllo prima di caricare, e la
possibilità di lanciare dinstall in modalità test dopo il
caricamento.
Lo script dcut (parte del pacchetto dput
, Sezione A.5.2, «dput
») aiuta a rimuovere
i file dalla cartella ftp di caricamento.
I seguenti strumenti aiutano ad automatizzare diverse attività di
manutenzione, ad aggiungere le voci changelog o la firma e a guardare bug in
Emacs facendo uso dei più nuovi e ufficiali config.sub
.
devscripts
è un pacchetto contenente
wrapper e strumenti che sono molto utili per mantenere i pacchetti
Debian. Script di esempio includono debchange e
dch, che manipolano il file
debian/changelog
da riga di comando e
debuild, che è un wrapper per
dpkg-buildpackage. L'utilità bts è
anche molto utile per aggiornare lo stato delle segnalazioni di bug da riga
di comando. uscan può essere utilizzato per vedere nuove
versioni originali fornite dei propri pacchetti. debrsign
può essere utilizzata per firmare in remoto un pacchetto prima di caricarlo,
che è bello (utile) quando la macchina con cui si genera il pacchetto è
diversa da dove sono le chiavi GPG.
Si consulti la pagina di manuale devscripts(1) per un elenco completo degli script disponibili.
autotools-dev
contiene le buone
pratiche per le persone che mantengono i pacchetti e che usano
autoconf o automake. Contiene anche i
file canonici config.sub
e
config.guess
che sono conosciuti per funzionare su
tutti i port di Debian.
dpkg-repack crea il pacchetto Debian da un pacchetto che
è già stato installato. Se sono state apportate modifiche al pacchetto
mentre era spacchettato (ad esempio, i file in /etc
sono stati modificati), il nuovo pacchetto erediterà le modifiche.
Questa utilità può rendere più facile copiare i pacchetti da un computer ad un altro, o ricreare pacchetti che sono installati sul proprio sistema ma non più disponibili, o salvare lo stato attuale di un pacchetto prima di un aggiornamento.
alien converte i pacchetti binari tra vari formati, tra cui Debian, RPM (RedHat), LSB (Linux Standard Base), Solaris e Slackware.
dpkg-dev-el
è un pacchetto Emacs che
fornisce assistenza durante la modifica di alcuni file nella cartella
debian
del proprio pacchetto. Per esempio, ci sono
utili funzioni per l'elencazione dei bug attuali di un pacchetto e per
finalizzare l'ultima voce in un file debian/changelog
.
dpkg-depcheck (dal pacchetto devscripts
, Sezione A.6.1, «devscripts
») esegue
un comando sotto strace per determinare tutti i pacchetti
che sono stati da esso utilizzati.
Per i pacchetti Debian, questo è utile quando si deve creare una voce
Build-Depends
per il proprio nuovo pacchetto:
l'esecuzione del processo di generazione attraverso
dpkg-depcheck fornirà una buona prima approssimazione
delle dipendenze per la compilazione. Per esempio:
dpkg-depcheck -b debian/rules build
dpkg-depcheck può essere utilizzato anche per controllare le dipendenze in fase di esecuzione, soprattutto se il pacchetto usa exec(2) per eseguire altri programmi.
Per ulteriori informazioni consultare dpkg-depcheck(1).
I seguenti strumenti sono utili per gli autori di port e per la cross-compilazione.
I seguenti pacchetti forniscono informazioni per i maintainer o aiutano con la scrittura di documentazione.
docbook-xml
fornisce i DTD Docbook
XML, che sono comunemente usati per la documentazione Debian (come il
vecchio DTD debiandoc SGML). Questo manuale, per esempio, è stato scritto in
DocBook XML.
Il pacchetto docbook-xsl
fornisce i
file XSL per l'applicazione di stili e la generazione dai sorgenti di vari
output. Sara necessario un processore XSLT, come xsltproc
, per utilizzare i fogli di stile
XSL. La documentazione per i fogli di stile si può trovare nei vari
pacchetti docbook-xsl-doc-*
.
Per produrre un PDF da FO, è necessario un processore FO, come xmlroff
o fop
. Un altro strumento per generare PDF da
DocBook XML è dblatex
.
debiandoc-sgml
fornisce il DTD
Debiandoc SGML, che è comunemente usato per la documentazione di Debian, ma
ora è deprecato (al suo posto dovrebbe essere usato docbook-xml
). Fornisce anche gli script per
applicare stili e creare dai sorgenti vari formati di output.
La documentazione per la DTD può essere trovata nel pacchetto debiandoc-sgml-doc
.
Contiene le chiavi pubbliche GPG e PGP degli sviluppatori Debian. Si consulti Sezione 3.2.2, «Mantenere la vostra chiave pubblica» e la documentazione del pacchetto per ulteriori informazioni.