[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ siguiente ]
Este documento tratará de describir cómo se construye un paquete Debian GNU/Linux para el usuario común de Debian y para 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. Puede que te preguntes cómo hacer tus propios paquetes y que pienses que quizás ésta es una tarea demasiado 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 desarrolladores 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 de 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 el 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
ficheros 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 al usuario
administrador (o «root», 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 el programa
está escrito en Fortran (véase g77(1)
).
gpc
- el compilador GNU de Pascal, necesario si el programa 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)
).
xutils
- algunos programas, normalmente aquellos hechos para X11,
también usan programas para generar Makefiles de un conjunto de funciones de
macro (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).
pbuilder
- este paquete contiene programas para crear y mantener
entornos chroot. Al construir paquetes Debian en estos entornos chroot se
verifica que las dependencias son las adecuadas y se evitan fallos al construir
desde el código fuente (véase pbuilder(8)
y
pdebuild(1)
).
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 el diseño del sistema operativo, el estándar de la
jerarquía del sistema de ficheros («Filesystem Hierarchy Standard», N. del
T.), y, lo más importante para ti, 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, adoptar 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ían,
buenas prácticas de empaquetado, cómo y cuando enviar los paquetes, etc.
(véase /usr/share/doc/developers-reference/index.en.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 se trata de una herramienta obsoleta.
Puede que quieras convertir en un desarrollador oficial de Debian una vez hayas construido tu paquete (o incluso mientras lo estás haciendo) para que el paquete se introduzca en la nueva distribución (si el programa es útil, ¿por qué no?).
No puedes convertirte en desarrollador oficial de Debian de la noche a la
mañana porque hace falta más que sólo habilidades técnicas. No te sientas
desilusionado por esto. Aún puedes subir tu paquete, si es útil a otras
personas, como su mantenedor a través de un patrocinador mientras tu entras en
el proceso de nuevos desarrolladores de
Debian
. En este caso el patrocinador es un desarrollador oficial de
Debian que ayuda a la persona que mantiene el paquete a subirlo al archivo de
Debian. Encontrarás más información de este procedimiento en el documento
preguntas
frecuentes de debian-mentors
.
Ten en cuenta que no tienes que crear un paquete nuevo para poder convertirte en desarrollador oficial de Debian. Un camino posible para ser desarrollador oficial es contribuir al mantenimiento de los paquetes ya existentes en la distribución.
Puedes construir dos tipos de paquetes: fuentes y binarios. Un paquete fuente contiene el código que puedes 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.
[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ siguiente ]
Guía del nuevo desarrollador de Debian
version 1.2.11, 12 de enero de 2007.joy-mg@debian.org
jfs@debian.org
ender@debian.org
ana@debian.org