[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ siguiente ]
Este documento tratará de describir cómo se construye un paquete Debian GNU/Linux para el usuario común de Debian (y futuros desarrolladores) en un lenguaje informal, y con multitud de ejemplos. Hay un antiguo dicho romano que dice, ¡Longum iter est per preaecepta, breve et efficax per exempla! (¡Es un largo camino con las reglas, pero corto y eficiente con ejemplos!)
Una de las cosas que hace a Debian una de las distribuciones más importantes del mercado es su sistema de paquetes. Aunque hay una gran cantidad de programas disponibles en forma de paquetes de Debian, algunas veces necesitarás instalar programas que no estén disponible en este formato. Puedes que te preguntes cómo harás tus propios paquetes y que pienses que quizás ésta sea una tarea demasiada difícil. Bueno, si eres un principiante en Linux, sí es duro, pero si eres un novato, no deberías estar leyendo esto ahora mismo. :-) Necesitas saber algo sobre programación en Unix, pero desde luego no tienes que ser un maestro.
Sin embargo, hay una cosa que es verdad: para crear y mantener paquetes Debian adecuadamente, necesitarás muchas horas. Para que nuestro sistema trabaje sin errores, nuestros desarolladores necesitan ser técnicamente competentes y concienzudos.
Este documento explicará cada pequeño paso (al principio quizás irrelevantes), te ayudará a crear tu primer paquete, ganar alguna experiencia en construir próximas versiones de él, y quizás otros paquetes después.
Se pueden obtener versiones nuevas de este documento en línea en http://www.debian.org/doc/maint-guide/
y en el paquete «maint-guide-es».
Antes de empezar nada, deberías asegurarte que tienes instalados algunos paquetes adicionales necesarios para el desarrollo. Observa que en la lista no están incluidos paquetes cuyas prioridades son «esencial» o «requerido» que se suponen ya instalados.
En la revisión de este documento se han actualizado los paquetes para Debian 2.2 («potato») y 3.0 («woody»).
Los siguientes paquetes vienen en una instalación estándar de Debian, así que probablemente ya los tengas (junto con los paquetes de los que dependen). Aún así, deberías comprobarlo con `dpkg -s <paquete>`.
dpkg-dev
- este paquete contiene las herramientas necesarias para
desempaquetar, construir y enviar paquetes fuente de Debian. (véase
dpkg-source(1)
)
file
- este útil programa puede determinar de qué tipo es un
fichero. (véase file(1)
)
gcc
- el compilador de C de GNU, necesario si tu programa, como la
gran mayoría, está escrito en el lenguaje de programación C. (véase
gcc(1)
, Este paquete también vendrá con otros paquetes como
binutils
que incluye programas para ensamblar y enlazar ficheros
objeto (véase `info binutils` en el paquete binutils-doc
) y el
preprocesador de C en el paquete cpp
. (véase cpp(1)
)
libc6-dev
- las bibliotecas y archivos de cabecera de C que gcc
necesita para enlazar y crear ficheros objeto. (véase `info libc` en el
paquete glibc-doc
)
make
- habitualmente la creación de un programa consta de varios
pasos. En lugar de ejecutar las mismas órdenes una y otra vez, puedes utilizar
este programa para automatizar el proceso, creando ficheros «Makefile». (véase
`info make`)
patch
- esta utilidad es muy práctica, ya que permite tomar un
fichero que contiene un listado de diferencias (producido por el programa diff)
y aplicárselas al fichero original, produciendo una versión
"parcheada". (véase patch(1)
)
perl
- Perl es uno de los lenguajes interpretados para hacer
guiones (o «scripts») más usados en los sistemas Un*x de hoy en dia, comúnmente
se refiere a él como la «navaja suiza de Unix». (véase perl(1)
)
Probablemente, necesitarás instalar además los siguientes paquetes:
autoconf
y automake
- muchos programas nuevos usan
guiones de configuración y ficheros Makefile que se procesan con la ayuda de
programas como éstos. (véase `info autoconf`, `info automake`)
dh-make
y debhelper
- dh-make es necesario para crear
el esqueleto de nuestro paquete ejemplo, y se usarán algunas de las
herramientas de debhelper para crear los paquetes. Aunque no son
imprescindibles para la creación de paquetes se recomiendan
encarecidamente para nuevos desarrolladores. Hacen el proceso
mucho más fácil al principio, y más fácil de controlar también más adelante.
(véase dh_make(1)
, debhelper(1)
,
/usr/share/doc/debhelper/README)
devscripts
- este paquete contiene algunos guiones útiles para los
desarrolladores, pero no son necesarios para crear paquetes. (véase
/usr/share/doc/devscripts/README.gz)
fakeroot
- esta utilidad te permite emular ser root (superusuario,
n. del t.), lo cual es necesario para ciertas partes del proceso de
construcción. (véase fakeroot(1)
)
gnupg
- herramienta que te permite firmar digitalmente
los paquetes. Esto es especialmente importante si quieres distribuir tu
paquete a otras personas, y ciertamente, tendrás que hacerlo cuando tu trabajo
vaya a incluirse en la distribución de Debian. (véase gpg(1)
)
g77
- el compilador GNU de Fortran 77, necesario si tu paquete
está escrito en Fortran. (véase g77(1)
)
gpc
- el compilador GNU de Pascal, necesario si tu paquete está
escrito en Pascal. Merece la pena mencionar aquí fp-compiler
, un
compilador libre de Pascal, que también es bueno en esta tarea. (véase
gpc(1)
, ppc386(1)
)
imake
y xmkmf
- algunos programas, normalmente
aquellos hechos para X11, también usan estos programas para generar Makefiles
de un conjunto de macrofunciones. (véase imake(1)
,
xmkmf(1)
)
lintian
- este es el comprobador de paquetes de Debian, que te
indica muchos de los errores comunes después de construir un paquete, y explica
los errores encontrados. (véase lintian(1)
,
/usr/share/doc/lintian/lintian.html/index.html)
Por último, la documentación que se indica a continuación es de gran importancia y debería leerse junto con este documento:
debian-policy
- incluye la estructura y contenidos del archivo,
ciertas notas sobre diseño del SO, el Estándar de la Jerarquía del Sistema de
Ficheros (Filesystem Hierarchy Standard, N. del T.), y, lo más importante para
tí, describe los requisitos que debe satisfacer cada paquete para ser incluido
en la distribución. (véase
/usr/share/doc/debian-policy/policy.html/index.html)
developers-reference
- para todos los temas no específicamente
relacionados con los detalles técnicos de cómo empaquetar, tales como la
estructura del archivo, cómo renombrar, abandonar, coger paquetes, cómo hacer
NMUs (Non-Maintainer Uploads, o envíos por personas distintas del
desarrollador, N. del T.), como gestionar los errores que los usuarios envíen,
y cómo y cuando enviar los paquetes, etc. (véase
/usr/share/doc/developers-reference/developers-reference.html/index.html)
Las breves descripciones dadas anteriormente sólo sirven para introducirte a lo que hace cada paquete. Antes de continuar, por favor, lee la documentación de cada programa, al menos para su uso normal. Puede parecerte algo duro ahora, pero más adelante estarás muy contento de haberla leído.
Nota: debmake
es un paquete que incluye otros programas con
funciones similares a dh-make, pero su uso específico no está
cubierto en este documento porque está se desaconseja su uso. Para más
información lee el manual de
Debmake
.
Puedes construir dos tipos de paquetes, fuentes y binarios. Un paquete fuente contiene el código que puede compilar en un programa. Un paquete binario contiene sólo el programa terminado. ¡No mezcles los términos como «fuentes de un programa» y el «paquete fuente de un programa»! Por favor, lee los otros manuales si necesitas más detalles sobre terminología.
Debian usa el término desarrollador («maintainer», N. del T.) para la persona que hace paquetes, autor original («upstream author», N. del T.) para la persona que hizo el programa, y desarrollador original («upstream maintainer», N. del T.) para la persona que actualmente mantiene el programa fuera de Debian. Generalmente el autor y el desarrollador fuente son la misma persona - y algunas veces incluso el desarrollador es el mismo. Si haces un programa, y quieres incluirlo en Debian, tienes total libertad para solicitar convertirte en desarrollador.
Después de construir tu paquete (o mientras lo haces), deberás convertirte en un desarrollador oficial de Debian si deseas que tu programa entre en la próxima distribución (si el programa es útil, ¿por qué no?). Este proceso se explica en la Referencia del desarrollador, por favor, léela.
[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ siguiente ]
Guía del nuevo desarrollador de Debian
versión 1.2, 6 de Abril 2001.joy-mg@debian.org
jfs@computer.org
david.martinez@rediris.es
anja_isbilia@yahoo.es