Entre en el directorio principal de y ejecute el siguiente comando:
dpkg-buildpackage -rfakeroot
Esto hará todo por usted, sólo tendrá que dar su clave secreta PGP, dos veces. Una vez haya hecho esto, verá cuatro nuevos ficheros en el directorio anterior (~/debian/):
es el paquete binario completo. Puede usar dpkg o dselect para instalar o eliminar éste como cualquier otro paquete.
Este es el código fuente original empaquetado de forma que si alguien quiere recrear su paquete desde cero puede hacerlo. O si alguien no está usando el sistema de paquetes de Debian quiere descargarse las fuentes y compilarlo manualmente.
Este es un sumario de los contenidos del código fuente. Este fichero es
generado con el fichero gentoo-0.9.12/debian/control y se usa cuando se
descomprime las fuentes con dpkg-source(1)
. Éste fichero está
firmado con PGP de forma que cualquier puede estar seguro de que es realmente
suyo.
Este fichero comprimido contiene todos y cada uno de los cambios que hizo al
código fuente original, en un formato conocido como "diff unificado".
Está hecho y lo utiliza dpkg-source(1)
.
Este fichero describe todos los cambios hechos en la revisión actual del paquete, y se usa por los programas de gestión del archivo FTP para instalar los paquetes binarios y fuentes en él. Se genera parcialmente gracias al fichero gentoo-0.9.12/debian/changelog y el fichero .dsc.
Mientras sigue trabajando en el paquete, cambiará su comportamiento y se le
añadirán nuevas funciones. Las personas que descarguen su paquete pueden mirar
este fichero y ver qué ha cambiado. Las largas listas de números son las sumas
MD5 para los ficheros. Las personas que descarguen estos ficheros pueden
probarlos con md5sum(1)
y si los números no coinciden, sabrán que
el fichero está corrupto o ha sido modificado. Éste fichero está firmado con
PGP de forma que cualquiera puede estar aún más seguro de que es realmente
suyo.
Con un paquete grande, puede que no quiere recompilar desde cero cada vez que toca un detalle en el fichero debian/rules. Para propósitos de prueba, puede hacer un fichero .deb sin necesidad de recompilar las fuentes originales de esta forma:
fakeroot debian/rules binary
Sólo asegúrese de que su regla `install' *no* tiene un hijo `install-stamp' (éste es el valor por defecto actualmente), para asegurarse de que se ejecuta `dh_clean -k' cada vez. Y una vez que ha terminado con los cambios, no se olvide de reconstruir el paquete siguiendo el procedimiento habitual, para poder enviarlo de la forma correcta.
Ejecute lintian(1)
sobre su fichero de cambios .changes; éste
programa comprobará muchos errores comunes al empaquetar. El comando es:
lintian -i gentoo_0.9.12-1_i386.changes
Por supuesto, cambia el nombre de fichero con el nombre del fichero de cambios generado por su paquete. Si parece que hay algunos errores (líneas que comienzan por E:), lea la explicación (líneas N:), corrija errores, y reconstruya como se describe en Construir el paquete., Sección 6.1. Si hay líneas que comienzan con W:, son sólo avisos (warnings, n. del t.), así que puede estar seguro de que su paquete está bien (pero seguramente necesita algún ajuste fino).
Observe que puede construir el paquete con dpkg-buildpackage y ejecutar lintian
todo de una sola vez con debuild(1)
.
Mire dentro del paquete usando un gestor de ficheros como mc(1)
, o
descomprimalo en algún punto temporal usando dpkg-deb(1)
. Esté
atento a ficheros innecesarios extra y algunas otras cosas que no se limpiaron.
Pista: `zgrep ^+++ ../gentoo_0.9.12-1.diff.gz` le dará una lista de sus
cambios/modificaciones a las fuentes, y `dpkg-deb -c gentoo_0.9.12-1_i386.deb`
listará los ficheros en el paquete.
Instale el paquete para probarlo usted mismo, esto es usando la orden
debi(1)
como superusuario. Intente instalarlo y ejecutarlo en
otras máquinas distintas de la suya y esté atento para detectar errores o
avisos tanto en la instalación como en la ejecución del programa.
Más tarde, cuando construya una nueva versión, debería hacer lo siguiente para asegurar la actualización básica del paquete:
Ahora que ha probado su nuevo paquete en profundidad, necesitará enviar estos
ficheros a master.debian.org, usando dupload(1)
. Primero debe
editar el fichero de configuración de dupload, ~/.dupload.conf. Copie los
valores por defecto del /etc a su directorio personal: Puede poner algo así:
package config; $default_host = "master"; $cfg{"master"}{"method"} = "scpb"; $cfg{"master"}{"login"} = "joy"; $cfg{"master"}{"visibleuser"} = "jrodin"; $cfg{"master"}{"visiblename"} = "jagor.srce.hr"; $cfg{"master"}{"fullname"} = "Josip Rodin"; $cfg{"non-us"}{"method"} = "scpb"; $cfg{"non-us"}{"login"} = "joy"; $cfg{"non-us"}{"visibleuser"} = "jrodin"; $cfg{"non-us"}{"visiblename"} = "jagor.srce.hr"; $cfg{"non-us"}{"fullname"} = "Josip Rodin"; 1;
Por supuesto, cambie mis valores personales a los suyos, y lea la página de
manual dupload.conf(5)
para comprender qué significa cada una de
estas opciones.
Entonces conecte con su proveedor de Internet, asegurese una vez mas de que está en el directorio /usr/local/src/gentoo, y ejecute la orden:
dupload --to master gentoo_0.9.12-1_i386.changes
Dupload comprobará que las sumas md5 coinciden con aquellas en el fichero .changes, y le avisará de rehacer el paquete como se describe en Construir el paquete., Sección 6.1 para poder enviarlo correctamente.
Dupload le preguntará su password en master.debian.org, envíe sus paquetes, y
hará un pequeño anuncio sobre su envío en debian-devel-changes@lists.debian.org
.
Si vive en Europa, puede usar otras colas de envío en lugar de master. Para
más detalles mire lea dupload(1)
, dupload(5)
y la
Referencia del Desarrollador.
Supongamos que se ha registrado un informe de bug contra su paquete, #54321, y que describe un problema que puede solucionar. Para crear una nueva revisión del paquete, necesita:
Ahora consideremos una situación diferente, algo más complicada: una versión nueva de las fuentes originales ha salido, y, por supuesto, desea empaquetarla. Debe hacer lo siguiente:
uupdate -u gentoo-0.9.13.tar.gz
Por supuesto, reemplace este nombre de fichero con el nombre de las fuentes de
su programa. uupdate(1)
renombrará apropiadamente este fichero
tar, intente aplicar los cambios de su fichero .diff.gz previo y actualizar el
nuevo fichero debian/changelog.
Observe que si ha puesto el fichero `debian/watch' como se describe en watch.ex, Sección 5.6, puede ejecutar
automáticamente uscan(1)
para ver fuentes revisadas, descargarlas,
y ejecutar uupdate.
Antes de que decida preguntar en lugares públicos, por favor simplemente RTFM
("Lea el Jodido Manual", n. del t.). Esto incluye documentación en
/usr/share/doc/dpkg, /usr/share/doc/debian, /usr/share/doc/package/* y las
páginas de man/info para todos los programas mencionados en este artículo.
Cuando reciba un aviso de fallo (bug report, n. del t.) (sí, avisos de fallos
¡de verdad!) sabrá que es el momento de indagar en el Sistema de Seguimiento de Fallos de
Debian
y leer la documentación allí, para poder tratar los informes
de forma eficiente.
Si se une a la lista de distribución de Mentores de Debian en debian-mentors@lists.debian.org
puede unirse con desarrolladores de Debian con experiencia que le ayudarán con
las preguntas que pueda tener. Puede subscribirse a ella enviando un correo
electrónico a debian-mentors-request@lists.debian.org
con la palabra 'subscribe' en el tema del mensaje.
Si aún tiene preguntas, hagalas en la lista de distribución de Desarrolladores
de Debian en debian-devel@lists.debian.org
.
Puede subscribirse a ella enviando un correo electrónico a debian-devel-request@lists.debian.org
con la palabra 'subscribe' en el tema del mensaje. Si ya es un desarrollador
de Debian debería estar suscrito a ella de todas formas.
Aunque todo funcionara bien, es el momento de empezar a rezar. ¿Por qué? Por que en sólo unas horas (o días) usuarios de todo el mundo empezarán a usar su paquete, y si cometió algún error crítico será bombardeado por correos de centenares de usuarios furiosos de Debian.... Sólo bromeaba :-)
Relájese y prepárese para recibir reportes de fallos, porque hay mucho más trabajo que hacer antes de seguir completamente las políticas de Debian (una vez más lea la documentación real para detalles). ¡Buena suerte!
jrodin@jagor.srce.hr
jfs@computer.org