Tabla de contenidos
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.
Debes conocer varios métodos para comprobar el paquete y localizar errores antes de transferirlo a repositorios públicos.
Probar el paquete en una máquina distinta a la usada en su construcción es una magnífica idea. Debes poner atención en todos los avisos y errores que se produzcan en las pruebas explicadas a continuación.
Si encuentras un nuevo archivo de parche autogenerado con el nombre
debian-changes-*
en el directorio
debian/patches
después de la construcción de tu paquete
de Debian no nativo en formato 3.0 (quilt)
, es probable
que hayas cambiado algún archivo accidentalmente o bien que el guión de
compilación haya modificado las fuentes originales. Si el error es tuyo,
corrígelo. Si es causado por el guión de compilación, corrige el origen del
error con dh-autoreconf como en Sección 4.4.3, “Personalización del archivo rules
” o bien inténtalo con los archivos
source/options
como en Sección 5.24, “Archivo 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.
Ya se ha comentado que los guiones del desarrollador
(los archivos preinst
, prerm
,
postinst
y postrm
) son
complicados, excepto si se utilizan los generados por el paquete debhelper
. No se recomienda su utilización a
los desarrolladores principiantes (véase Sección 5.18, “Archivos {pre,post}{inst,rm}
” ).
Si el paquete utiliza estos guiones del desarrollador modificados o no triviales, debes comprobar su funcionamiento en la instalación, desinstalación, eliminación y actualización. Algunos errores en estos guiones del desarrollador sólo se producen cuando los paquetes se eliminan o purgan. Utiliza la orden dpkg como se indica a continuación para probarlos:
$ sudo dpkg -r gentoo $ sudo dpkg -P gentoo $ sudo dpkg -i gentoo_versión
-revisión
_i386
.deb
Sigue esta secuencia para la comprobación:
Instala la versión anterior del paquete (requerido).
Actualiza ahora a la versión actual.
Vuelve a la versión anterior (opcional).
Elimínalo.
Instala la nueva versión del paquete.
Elimínalo.
Instálalo de nuevo.
Elimínalo.
Si estás trabajando en la construcción de la primera versión del paquete, construye versiones «fantasma» anteriores (será suficiente cambiar el número de la versión) para realizar las pruebas y así prevenir problemas.
Recuerda que si ya hay versiones anteriores del paquete en el repositorio Debian, los usuarios actualizarán el paquete desde la versión anterior disponible (y esta versión puede ser distinta en la versión estable y de pruebas). Realiza las comprobaciones también con estas versiones.
Aunque no se garantiza la reinstalación de una versión anterior, es preferible asegurarse que es posible sin generar problemas.
Ejecuta lintian(1) en tu archivo
.changes
. La orden lintian ejecutará
varios guiones para revisar los errores más frecuentes de los paquetes
[75].
$ lintian -i -I --show-overrides gentoo_0.9.12-1_i386.changes
Por supuesto, cambia el nombre del fichero por el nombre del fichero
.changes
generado por tu paquete. Los mensajes de
error de lintian se codifican con una letra al inicio de
la línea del mensaje:
E:
para los errores; indica violaciones de las normas o
un error en el paquete.
W:
para las advertencias; indica una posible violación de
las normas o error en el paquete (pero pudiendo ser una falsa alarma).
I:
para información; proporciona algo de información
sobre algún aspecto del paquete (que tal vez sea mejorable).
N:
para las notas o anotaciones; proporciona mensajes
detallados que pueden ayudarte en la depuración del paquete.
O:
para mensajes ignorados; un mensaje ignorado (según lo
configurado en los archivos lintian-overrides
pero que
se emite debido a la opción --show-overrides
.
En el caso de los errores (líneas que comienzan por E:), lee la explicación
(líneas N:), cambia el paquete para eliminarlos o verifica que los avisos
son falsos. En este caso, genera los archivos
lintian-overrides
como se ha descrito en Sección 5.14, “Archivos {
”.
nombre_del_paquete
.source/}
lintian-overrides
Observa que puedes construir el paquete con dpkg-buildpackage y ejecutar lintian todo con sólo una orden si utilizas debuild(1) o pdebuild(1).
Puedes ver la lista de archivos del paquete binario Debian ejecutando la orden debc(1) como sigue:
$ debc nombre_del_paquete
.changes
Puedes comparar el contenido de dos paquetes de fuentes Debian ejecutando la orden debdiff(1) como sigue:
$ debdiffversión_anterior
.dscnueva_versión
.dsc
Puedes comparar la lista de ficheros de dos paquetes binarios de Debian con la orden debdiff(1) ejecutando la orden como sigue:
$ debdiffversión_anterior
.changesnueva_versión
.changes
Este programa es útil para verificar que no hay ficheros que se hayan cambiado de sitio o eliminado por error, y que no se ha realizado ningún otro cambio no deseado al actualizar el paquete.
Puedes comparar dos ficheros diff.gz
con la orden
interdiff(1). Esto es muy útil para verificar
que no se han realizado cambios inadvertidos por el responsable del paquete
al actualizar el paquetes que se han construido con el formato
1.0
. Ejecuta lo siguiente:
$ interdiff -zversión_anterior
.diff.gznueva_versión
.diff.gz
El nuevo formato de fuentes 3.0
conserva los cambios en
varios archivos de parches («.patch») como se describe en Sección 5.25, “Archivos patches/*
”. Puedes seguir los cambios realizados por cada archivo
debian/patches/*
utilizando la orden
interdiff.
Algunas de las operaciones de comprobación del paquete descritas puede
realizarse de forma muy intuitiva si empleamos un gestor de ficheros como
mc(1), que permite visionar tanto el contenido del paquete
*.deb
, como el de los ficheros
*.udeb
, *.debian.tar.gz
,
*.diff.gz
, *.orig.tar.gz
.
Vigila que no haya ficheros innecesarios extra o de tamaño cero, tanto en el
binario como en el paquete fuente. A veces, hay cosas que no se limpiaron
adecuadamente, debes ajustar tu fichero rules
para
arreglar esto.
[75] No es necesario añadir la opción -i -I --show-overrides
a
la orden lintian si la has incluido en la configuración
en /etc/devscripts.conf
o
~/.devscripts
según se explicó en Sección 6.3, “La orden debuild” .