Empaquetamiento y mantención de programas en Debian

24
Mantenimiento de paquetes en Debian Pablo Sepúlveda P. [email protected]

Transcript of Empaquetamiento y mantención de programas en Debian

Page 1: Empaquetamiento y mantención de programas en Debian

Mantenimiento de paquetes en Debian

Pablo Sepúlveda [email protected]

Page 2: Empaquetamiento y mantención de programas en Debian

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!

Page 3: Empaquetamiento y mantención de programas en Debian

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!

Page 4: Empaquetamiento y mantención de programas en Debian

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!

Page 5: Empaquetamiento y mantención de programas en Debian

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!

Page 6: Empaquetamiento y mantención de programas en Debian

Debianizando Programas● Software esencial para empaquetar:● build­essential (lista informativa).● debian­policy (manual).● devscripts (scripts).● dh­make (convertidor de código fuente).● fakeroot (herramienta para simular root).

# apt­get install build­essential devscripts dh­make fakeroot

SOFTWARE LIBRE, ¡Te da tu Libertad!

Page 7: Empaquetamiento y mantención de programas en Debian

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!

Page 8: Empaquetamiento y mantención de programas en Debian

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!

Page 9: Empaquetamiento y mantención de programas en Debian

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!

Page 10: Empaquetamiento y mantención de programas en Debian

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!

Page 11: Empaquetamiento y mantención de programas en Debian

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!

Page 12: Empaquetamiento y mantención de programas en Debian

Debianizando Programas● Nos quedamos con los siguientes archivos:

● changelog

● compat

● control

● copyright

● docs

● menu

● rules

● watches

SOFTWARE LIBRE, ¡Te da tu Libertad!

Page 13: Empaquetamiento y mantención de programas en Debian

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!

Page 14: Empaquetamiento y mantención de programas en Debian

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!

Page 15: Empaquetamiento y mantención de programas en Debian

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!

Page 16: Empaquetamiento y mantención de programas en Debian

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/common­licenses).

SOFTWARE LIBRE, ¡Te da tu Libertad!

Page 17: Empaquetamiento y mantención de programas en Debian

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!

Page 18: Empaquetamiento y mantención de programas en Debian

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!

Page 19: Empaquetamiento y mantención de programas en Debian

Debianizando Programas

● debian/rules● Reglas para compilar y construir el paquete.

● Técnicamente un Makefile con reglas específicas: build, binary, binary­arch, binary­indep, 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!

Page 20: Empaquetamiento y mantención de programas en Debian

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!

Page 21: Empaquetamiento y mantención de programas en Debian

Creación del Paquete DEB● # fakeroot● # dpkg­buildpackage (o debuild)● Completar dependencias hasta quedar

cumplidas, una vez listo generará el **.deb

SOFTWARE LIBRE, ¡Te da tu Libertad!

Page 22: Empaquetamiento y mantención de programas en Debian

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!

Page 23: Empaquetamiento y mantención de programas en Debian

SOFTWARE LIBRE, ¡Te da tu Libertad!

Gracias por su atención

● Contacto:

[email protected]

[email protected]

[email protected]

http://www.psep.cl

Page 24: Empaquetamiento y mantención de programas en Debian

DESARROLLANDO LIBERTAD Y FUTURO

http://www.gnuchile.cl