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.
Some people prefer to use high-level package maintenance tools and some do not. Debian is officially agnostic on this issue; any tool that gets the job done is fine. Therefore, this section is not meant to stipulate to anyone which tools they should use or how they should go about their duties of maintainership. Nor is it meant to endorse any particular tool to the exclusion of a competing tool.
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
.
Many feel that this system should be used for all packages that require
interactive configuration; see Sezione 6.5, «Gestione della configurazione con debconf
».
debconf
is not currently required by
Debian Policy, but that may change in the future.
According to the Free On-line Dictionary of Computing (FOLDOC), `lint' is: "A Unix C language processor which carries out more thorough checks on the code than is usual with C compilers." Package lint tools help package maintainers by automatically finding common problems and policy violations in their packages.
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
is a collection of
programs that can be used in debian/rules
to automate
common tasks related to building binary Debian packages. debhelper
includes programs to install various
files into your package, compress files, fix file permissions, and integrate
your package with the Debian menu system.
Unlike some approaches, debhelper
is
broken into several small, simple commands, which act in a consistent
manner. As such, it allows more fine-grained control than some of the other
debian/rules tools.
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-
.
When choosing a debhelper
compatibility level for your package, you should choose the highest
compatibility level that is supported in the most recent stable release.
Only use a higher compatibility level if you need specific features that are
provided by that compatibility level that are not available in earlier
levels.
In the past the compatibility level was defined in
debian/compat
, however nowadays it is much better to
not use that but rather to use a versioned build-dependency like
debhelper-compat (=12)
.
The dh-make
package contains
dh_make, a program that creates a skeleton of files
necessary to build a Debian package out of a source tree. As the name
suggests, dh_make is a rewrite of debmake
, and its template files use
dh_* programs from 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.
The following packages help with the package building process, general driving of dpkg-buildpackage, as well as handling supporting tasks.
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
constructs a chrooted
system, and builds a package inside the chroot. It is very useful to check
that a package's build dependencies are correct, and to be sure that
unnecessary and wrong build dependencies will not exist in the resulting
package.
A related package is cowbuilder
,
which speeds up the build process using a COW filesystem on any standard
Linux filesystem.
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.
The dput
package and script do much
the same thing as dupload
, but in a
different way. It has some features over dupload
, such as the ability to check the GnuPG
signature and checksums before uploading, and the possibility of running
dinstall in dry-run mode after the upload.
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
is a package containing
wrappers and tools that are very helpful for maintaining your Debian
packages. Example scripts include debchange (or its
alias, dch), which manipulates your
debian/changelog
file from the command-line, and
debuild, which is a wrapper around
dpkg-buildpackage. The bts utility is
also very helpful to update the state of bug reports on the command line.
uscan can be used to watch for new upstream versions of
your packages.
Si consulti la pagina di manuale devscripts(1) per un elenco completo degli script disponibili.
autotools-dev
contains best
practices for people who maintain packages that use
autoconf and/or automake. Also
contains canonical config.sub
and
config.guess
files, which are known to work on all
Debian ports.
dpkg-repack creates a Debian package file out of a
package that has already been installed. If any changes have been made to
the package while it was unpacked (e.g., files in /etc
were modified), the new package will inherit the changes.
This utility can make it easy to copy packages from one computer to another, or to recreate packages that are installed on your system but no longer available elsewhere, or to save the current state of a package before you upgrade it.
alien converte i pacchetti binari tra vari formati, tra cui Debian, RPM (RedHat), LSB (Linux Standard Base), Solaris e Slackware.
dpkg-dev-el
is an Emacs lisp package
that provides assistance when editing some of the files in the
debian
directory of your package. For instance, there
are handy functions for listing a package's current bugs, and for finalizing
the latest entry in a debian/changelog
file.
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.