Sumari
The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers. Please use this new tutorial as the primary tutorial document.
Cal que coneguis els procediments per comprovar el paquet i localitzar les errades abans d'enviar-lo als repositoris públics.
Provar el paquet en una màquina distinta de la que has fet servir en la construcció és una magnífica idea. Cal que posis atenció en tots els errors detectats en les proves que s'expliquen a continuació.
Si trobes un nou arxiu de pegat auto-generat com
debian-changes-*
en el directori
debian/patches
desprès de compilar el teu paquet no
nadiu Debian en el format 3.0 (quilt)
, el més probable és
que has canviat algun arxiu per accident o el guió de compilació ha
modificat les fonts originals. Si és un error teu, ho corregeixes. Si
l'error l'ha causat el guió, corregeix la causa de l'error amb
dh-autoreconf com a Secció 4.4.3, «Personalització del fitxer rules
.» o bé
fes proves amb els arxius source/options
com s'ha
explicat a Secció 5.24, «Fitxer source/options
».
You must test your package for whether it installs without problems. The debi(1) command helps you to test installing all the generated binary packages.
$ sudo debi gentoo_0.9.12-1_i386.changes
To prevent installation problems on different systems, you must make sure
that there are no filenames conflicting with other existing packages, using
the Contents-
file
downloaded from the Debian archive. The apt-file command
may be handy for this task. If there are collisions, please take action to
avoid this real problem, whether by renaming the file, moving a common file
to a separate package that multiple packages can depend on, using the
alternatives mechanism (see
update-alternatives(1)) in coordination with the
maintainers of other affected packages, or declaring a
i386
Conflicts
relationship in the
debian/control
file.
Ja s'ha comentat que els guions del desenvolupador (els
fitxers preinst
, prerm
,
postinst
i postrm
) són complicats,
excepte si s'utilitzen els generats pel paquet debhelper
. No es recomana la seva utilització
als desenvolupadors principiants (consulta Secció 5.18, «Fitxers {pre,post}{inst,rm}
»).
Si el paquet utilitza guions del desenvolupador modificats, has de comprovar el seu funcionament en la instal·lació, desinstal·lació, eliminació i actualització. Alguns dels problemes en aquests guions del desenvolupador només es detecten en l'eliminació o desinstal·lació. Fes servir l'ordre dpkg per fer la comprovació:
$ sudo dpkg -r gentoo $ sudo dpkg -P gentoo $ sudo dpkg -i gentoo_versió
-revisió
_i386
.deb
Segueix aquesta seqüència per a la comprovació:
Instal·la la versió anterior del paquet (obligatori).
Actualitza ara a la versió actual.
Torna a la versió anterior (opcional).
Desinstal·la el paquet.
Instal·la la nova versió del paquet.
Elimina'l.
Instal·la'l de nou.
Desinstal·la el paquet.
Si treballes en la construcció de la primera versió del paquet, construeix versions «fantasma» anteriors (és suficient canviar el número de versió) per realitzar les proves i prevenir problemes.
Recorda que si hi ha versions anteriors del paquet en el repositori Debian, els usuaris actualitzaran el paquet des de la versió anterior disponible (i aquesta versió pot ésser distinta en la versió estable i de proves). Realitza les comprovacions també amb aquestes versions.
Encara que no es garanteix la reinstal·lació d'una versió anterior, és preferible assegurar-se que és possible fer-ho sense generar problemes.
Executa lintian(1) amb el teu arxiu de canvis
.changes
. L'ordre lintian executa
diversos guions de comprovació del paquet per localitzar els errors més
freqüents [75].
$ lintian -i -I --show-overrides gentoo_0.9.12-1_i386.changes
Per suposat, canvia el nom de l'arxiu pel nom de l'arxiu
.changes
del teu paquet. Els missatges d'error de
lintian es codifiquen amb una lletra inicial en la línia
del missatge:
E:
error; per indicar violacions de les normes o un error
en el paquet.
W:
advertència; per advertir d'una possible violació de
les normes o error en el paquet (però pot ésser una falsa alarma).
I:
informació; informació sobre algun aspecte del paquet
(que tal vegada és millorable).
N:
nota o anotació; per a missatges detallats que poden
ajudar-te en la depuració del paquet.
O:
ignorat; per a missatges ignorats (segons la
configuració dels fitxers lintian-overrides
) però que
s'emet degut a l'opció --show-overrides
.
En el cas dels errors (línies amb «E:» inicial), llegeix l'explicació
(línies «N:»), fes els canvis necessaris en el paquet o comprova que són
avisos falsos. En aquest cas, fes que lintian
els
accepti com s'ha explicat a Secció 5.14, «Fitxers
{
».
nom_arxiu
.source/}lintian-overrides
Observa que pots construir el paquet amb dpkg-buildpackage i executar lintian només amb una ordre si fas servir debuild(1) o pdebuild(1).
Pots veure una llista dels fitxers del paquet binari Debian executant l'ordre debc(1) així:
$ debc nom_del_paquet
.changes
Pots comparar el contingut de dos paquets de fonts Debian executant l'ordre debdiff(1) així:
$ debdiffversió_anterior
.dscnova_versió
.dsc
Pots comparar la llista de fitxers de dos paquets binaris de Debian amb l'ordre debdiff(1) executant l'ordre següent:
$ debdiffversió_anterior
.changesnova_versió
.changes
Aquest programa és útil per comprovar que no hi ha fitxers canviats d'ubicació o eliminats per error, i que no s'ha realitzat cap altre canvi no desitjat en l'actualització del paquet.
Pots comparar dos fitxers diff.gz
amb l'ordre
interdiff(1). Això és útil per comprovar que el
responsable del paquet no ha fet canvis inadvertits en l'actualització de
paquets construïts amb el format 1.0
. Executa:
$ interdiff -zversió_anterior
.diff.gznova_versió
.diff.gz
El nou format 3.0
de les fonts conserva els canvis en
arxius de pegats com es descriu a Secció 5.25, «Fitxers patches/*
.». Pots veure els
canvis de cada arxiu debian/patches/*
fent servir
l'ordre interdiff.
Algunes de les operacions de comprovació del paquet explicades poden
realitzar-se de manera molt intuïtiva si es fa servir un gestor de fitxers
com mc(1), que permet visualitzar el
contingut del paquet *.deb
, i dels fitxers
*.udeb
, *.debian.tar.gz
,
*.diff.gz
i *.orig.tar.gz
Comprova que no hi hagi fitxers innecessaris o de tamany zero, tant en el
binari com en el paquet font. De vegades, hi ha coses que no es varen
netejar adequadament: caldrà ajustar el fitxer rules
per arreglar això.
[75] No és necessari afegir a lintian l'opció -i -I
--show-overrides
si l'has inclòs en la configuració a
/etc/devscripts.conf
o
~/.devscripts
com s'ha explicat a Secció 6.3, «L'ordre debuild.».