[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ siguiente ]
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.
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
.
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:
Instala la versión anterior del paquete (requerido).
Actualiza ahora a la versión actual.
Vuelve a la versión anterior (opcional).
eliminarlo.
Instala la nueva versión del paquete.
Elimínalo.
Instálalo de nuevo.
eliminarlo.
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.
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:
E: error; para indicar violaciones de las normas o un error en el paquete.
W: advertencia; para advertir de una posible violación de las normas o error en el paquete (pero pudiendo ser una falsa alarma).
I: información; información sobre algún aspecto del paquete (que tal vez sea mejorable).
N: nota o anotación; para mensajes detallados que pueden ayudarte en la depuración del paquete.
O: ignorado; 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 (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)
.
debc
Puedes ver la lista de archivos del paquete binario Debian ejecutando la orden
debc(1)
como sigue:
$ debc nombre_paquete.changes
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.
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
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 UTCjoy-mg@debian.org
jfs@debian.org
ender@debian.org
ana@debian.org
fcocuadrado@gmail.com
tangram.peces@gmail.com