Mantenimiento de paquetes en Debian
Pablo Sepúlveda [email protected]
Introducción al Proyecto Debian
● Origen.● Directrices (DFSG).● Contrato Social, inclusión al nombre el
“GNU/Linux”.● Distintas adaptaciones además de Linux:
NetBSD, kFreeBSD y GNU Hurd.
SOFTWARE LIBRE, ¡Te da tu Libertad!
Introducción a Debian● Rama stable (actual Squeeze 6.0).● Rama oldstable (Lenny 5.0).● Rama testing (futura Wheezy 7.0).● Rama sid (unstable).● Rama experimental (nuevos ingresos).
SOFTWARE LIBRE, ¡Te da tu Libertad!
Sistemas de Paquetes
● Dpkg (instalación a bajo nivel).● Advanced Packaging Tool (apt).● Aptitude (función de dselect + apt, gráfica).● Estructura de los “deb”.
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
Enfocado a programas que no estén disponibles en deb. También que cumplan con las DFSG. Pasos principales:
● Añadir cambios específicos para Debian.● Construir paquete fuente y binarios para
Debian.● Comprobar y arreglar problemas.● Seguir con las actualizaciones y mantenimiento.
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas● Software esencial para empaquetar:● buildessential (lista informativa).● debianpolicy (manual).● devscripts (scripts).● dhmake (convertidor de código fuente).● fakeroot (herramienta para simular root).
# aptget install buildessential devscripts dhmake fakeroot
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● Configurando dh_make:$ cat >>~/.bashrc <<EOF
DEBEMAIL="[email protected]"
DEBFULLNAME="Nombre y Apellido"
export DEBEMAIL DEBFULLNAME
EOF
$ . ~/.bashrc
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● $ wget http://www.psep.cl/recursos/source/gentoo-0.19.12.tar.gz
● $ tar -xvzf gentoo-0.19.12.tar.gz● $ cd gentoo-0.19.12● $ dh_make -f ../gentoo-0.19.12.tar.gz
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● Notarán como se crean archivos adicionales gracias a la “debianización” de dh_make.
● Se crea un archivo de extensión “orig” en la carpeta superior.
gentoo_0.19.12.orig.tar.gz● Además de una carpeta “debian” donde
trabajamos.
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● Ficheros que no son necesarios bajo debian/● *cron.d.ex (archivos que tengan alguna tarea).● emacsen*-ex (relacionados con Emacs).● init.d.ex (scripts de inicio).● *default.ex (scripts por defecto).● *.doc-base.ex (manuales).
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● postinst.ex, prerm.ex, preinst.ex y postrm.ex (maintainer scripts).
● README.Debian (información específica del software).
● manpage* (usaremos la página que incluye actualmente el paquete).
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas● Nos quedamos con los siguientes archivos:
● changelog
● compat
● control
● copyright
● docs
● menu
● rules
● watches
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● debian/changelog
Logs de cambios en el empaquetado de Debian, también trae la información de importancia y cierre de bugs.
● debian/compat
Número de compatibilidad con debhelper, actualmente no es necesario modificarlo.
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● debian/control
Metadatos de los paquetes fuente y binario.Source: gentoo
Section: unknown
Priority: extra
Maintainer: Pablo Sepulveda <[email protected]>
Build-Depends: debhelper (>= 8.0.0), autotools-dev
Standards-Version: 3.9.2
Homepage: <insert the upstream URL, if relevant>
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● debian/controlPackage: gentoo
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● debian/copyright● Copyright e información sobre la licencia● ¡Es esencial hacerlo correctamente! ¡Muy
importante!● Incluir el texto completo (excepto para las
licencias GPL, LGPL y otras que estén en /usr/share/commonlicenses).
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● debian/docs
Contiene el listado de ficheros de configuración que se instalarán bajo /usr/share/doc/<paquete>/
● BUGS
● NEWS
● README
● README.gtkrc
● README.NLS
● TODO
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● debian/menu
Es para tener una entrada en el menu Debian.?package(gentoo):needs="X11|text|vc|wm" section="Applications/see-
menu-manual"\
title="gentoo" command="/usr/bin/gentoo"
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● debian/rules● Reglas para compilar y construir el paquete.
● Técnicamente un Makefile con reglas específicas: build, binary, binaryarch, binaryindep, clean.
● La mayoría de las veces utilizando asistentes (debhelper).
● Algunas veces muy simple, otras muy complejo.
● La integración en el sistema puede resultar difícil.
SOFTWARE LIBRE, ¡Te da tu Libertad!
Debianizando Programas
● debian/rules: resumen● debian/rules build: compila el programa● debian/rules binary: crea el paquete binario
Instala el programa bajo debian/tmp
Pone los metadatos de empaquetado en debian/tmp/DEBIAN
● debian/rules clean: limpieza
SOFTWARE LIBRE, ¡Te da tu Libertad!
Creación del Paquete DEB● # fakeroot● # dpkgbuildpackage (o debuild)● Completar dependencias hasta quedar
cumplidas, una vez listo generará el **.deb
SOFTWARE LIBRE, ¡Te da tu Libertad!
Documentación
● Debian Policy http://www.debian.org/doc/debian-policy
● Guía del nuevo Desarrollador Debian
http://www.debian.org/doc/manuals/maint-guide
SOFTWARE LIBRE, ¡Te da tu Libertad!
SOFTWARE LIBRE, ¡Te da tu Libertad!
Gracias por su atención
● Contacto:
http://www.psep.cl
DESARROLLANDO LIBERTAD Y FUTURO
http://www.gnuchile.cl
Top Related