[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ siguiente ]


Guía del nuevo desarrollador de Debian
Capítulo 7 - Cómo comprobar tu paquete para encontrar fallos


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 errores que se produzcan en las pruebas explicadas a continuación.


7.1 Comprobando la instalación del paquete (orden debi)

Instala el paquete para probarlo tú mismo, por ejemplo, usando la orden debi(1) como superusuario. Intenta instalarlo y ejecutarlo en otras máquinas distintas de la tuya, y presta atención para detectar errores o avisos tanto en la instalación como en la ejecución del programa.

     $ sudo debi gentoo_0.9.12-1_i386.changes

Debes asegurarte que no haya archivos en conflicto con otros paquetes utilizando el archivo Contents-i386, (descargándolo del repositorio Debian) para prevenir problemas de instalación en distintos sistemas. La orden apt-file será útil para realizar esta tarea. Si hay archivos en conflicto, deberás hacer lo necesario para evitar problemas utilizando el mecanismo de alternativas (véase update-alternatives(1)) coordinándote con los responsables de los otros paquetes o bien estableciendo correctamente el campo Conflicts del archivo debian/control.


7.2 Comprobando los guiones de instalación («maintainer scripts»)

Ya se ha comentado que los guiones de instalación (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 Archivos {post|pre}{inst|rm}, Sección 5.18).

Si el paquete utiliza guiones modificados, debes comprobar su funcionamiento en la instalación, desinstalación, eliminación y actualización. Algunos errores en estos guiones sólo se detectaran en la eliminación o desinstalación. Utiliza la orden dpkg para hacer la comprobación:

     $ 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:

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.


7.3 El paquete lintian

Ejecuta lintian(1) sobre tu fichero de cambios .changes. La orden lintian ejecuta varios guiones de comprobación del paquete para localizar los errores más frecuentes [54] .

     $ lintian -i -I --show-overrides gentoo_0.9.12-1_i386.changes

Por supuesto, cambia el nombre de fichero con el nombre del fichero de cambios generado por tu paquete. Los mensajes de error de lintian se codifican con una letra al inicio de la línea del mensaje:

En el caso de los errores (líneas que comienzan por E:), lee la explicación (líneas N:), cambia el paquete para eliminarlos (y reconstruye como se describe en Reconstrucción completa, Sección 6.1 o verifica que los avisos son falsos. En este caso, haz que lintian los acepte, como se ha descrito en Archivos {nombre_archivo.|source/}lintian-overrides, Sección 5.13.

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).


7.4 La orden debc

Puedes ver la lista de archivos del paquete binario Debian ejecutando la orden debc(1) como sigue:

     $ debc nombre_paquete.changes

7.5 La orden debdiff

Puedes comparar el contenido de dos paquetes de fuentes Debian ejecutando la orden debdiff(1) como sigue:

     $ debdiff versión_anterior.dsc nueva_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:

     $ debdiff versión_anterior.changes nueva_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.


7.6 La orden interdiff

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 -z versión_anterior.diff.gz nueva_versión.diff.gz

7.7 La orden mc

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 y *.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. También puedes descomprimir el contenido del paquete *.deb con la orden dpkg-deb(1)


[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ siguiente ]


Guía del nuevo desarrollador de Debian

versión 1.2.25, 2010-12-22 12:44:34 UTC

Josip Rodin joy-mg@debian.org

Traducido por Javier Fernández-Sanguino Peña jfs@debian.org
David Martínez ender@debian.org
Ana Beatriz Guerrero López ana@debian.org
Francisco Javier Cuadrado fcocuadrado@gmail.com
Innocent De Marchi tangram.peces@gmail.com