Mantenimiento de paquetes en Debian

Pablo Sepúlveda P.
psepulveda@gnuchile.cl
Introducción al Proyecto Debian
●

Origen.

●

Directrices (DFSG).

●

●

Contrato Social, inclusión al nombre el
“GNU/Lin...
Introducción a Debian
●

Rama stable (actual Squeeze 6.0).

●

Rama oldstable (Lenny 5.0).

●

Rama testing (futura Wheezy...
Sistemas de Paquetes
●

Dpkg (instalación a bajo nivel).

●

Advanced Packaging Tool (apt).

●

Aptitude (función de dsele...
Debianizando Programas
Enfocado a programas que no estén
disponibles en deb. También que cumplan con
las DFSG. Pasos princ...
Debianizando Programas
●

Software esencial para empaquetar:

●

build­essential (lista informativa).

●

debian­policy (m...
Debianizando Programas
●

Configurando dh_make:
$ cat >>~/.bashrc <<EOF
DEBEMAIL="nuestromail@ejemplo.org"
DEBFULLNAME="No...
Debianizando Programas
●

$ wget
http://www.psep.cl/recursos/source/gentoo
-0.19.12.tar.gz

●

$ tar -xvzf gentoo-0.19.12....
Debianizando Programas
●

●

Notarán como se crean archivos adicionales
gracias a la “debianización” de dh_make.
Se crea u...
Debianizando Programas
●

Ficheros que no son necesarios bajo debian/

●

*cron.d.ex (archivos que tengan alguna tarea).

...
Debianizando Programas
●

●

●

postinst.ex, prerm.ex, preinst.ex y postrm.ex
(maintainer scripts).
README.Debian (informa...
Debianizando Programas
●

Nos quedamos con los siguientes archivos:

●

changelog

●

compat

●

control

●

copyright

●
...
Debianizando Programas
●

debian/changelog
Logs de cambios en el empaquetado de
Debian, también trae la información de
imp...
Debianizando Programas
●

debian/control
Metadatos de los paquetes fuente y binario.
Source: gentoo
Section: unknown
Prior...
Debianizando Programas
●

debian/control
Package: gentoo
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Des...
Debianizando Programas
●

debian/copyright

●

Copyright e información sobre la licencia

●

●

¡Es esencial hacerlo corre...
Debianizando Programas
●

debian/docs
Contiene el listado de ficheros de
configuración que se instalarán bajo
/usr/share/d...
Debianizando Programas
●

debian/menu
Es para tener una entrada en el menu Debian.
?package(gentoo):needs="X11|text|vc|wm"...
Debianizando Programas
●

debian/rules

●

Reglas para compilar y construir el paquete.

●

Técnicamente un Makefile con r...
Debianizando Programas
●

debian/rules: resumen

●

debian/rules build: compila el programa

●

debian/rules binary: crea ...
Creación del Paquete DEB
●

# fakeroot

●

# dpkg­buildpackage (o debuild)

●

Completar dependencias hasta quedar
cumplid...
Documentación
●

●

Debian Policy
http://www.debian.org/doc/debian-policy
Guía del nuevo Desarrollador Debian
http://www.d...
Gracias por su atención
●

Contacto:
psepulveda@gnuchile.cl
psep@debian.cl
pablo.sepulveda@member.fsf.org
http://www.psep....
DESARROLLANDO LIBERTAD Y FUTURO
http://www.gnuchile.cl
Upcoming SlideShare
Loading in...5
×

Mantenimiento de paquetes en Debian GNU/Linux

139

Published on

Mantenimiento de paquetes en Debian GNU/Linux

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
139
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mantenimiento de paquetes en Debian GNU/Linux

  1. 1. Mantenimiento de paquetes en Debian Pablo Sepúlveda P. psepulveda@gnuchile.cl
  2. 2. 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!
  3. 3. 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!
  4. 4. 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!
  5. 5. 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!
  6. 6. 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!
  7. 7. Debianizando Programas ● Configurando dh_make: $ cat >>~/.bashrc <<EOF DEBEMAIL="nuestromail@ejemplo.org" DEBFULLNAME="Nombre y Apellido" export DEBEMAIL DEBFULLNAME EOF $ . ~/.bashrc SOFTWARE LIBRE, ¡Te da tu Libertad!
  8. 8. 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!
  9. 9. 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!
  10. 10. 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!
  11. 11. 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!
  12. 12. Debianizando Programas ● Nos quedamos con los siguientes archivos: ● changelog ● compat ● control ● copyright ● docs ● menu ● rules ● watches SOFTWARE LIBRE, ¡Te da tu Libertad!
  13. 13. 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!
  14. 14. Debianizando Programas ● debian/control Metadatos de los paquetes fuente y binario. Source: gentoo Section: unknown Priority: extra Maintainer: Pablo Sepulveda <psep@debian.cl> 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!
  15. 15. Debianizando Programas ● debian/control Package: 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!
  16. 16. 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!
  17. 17. 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!
  18. 18. Debianizando Programas ● debian/menu Es para tener una entrada en el menu Debian. ?package(gentoo):needs="X11|text|vc|wm" section="Applications/seemenu-manual" title="gentoo" command="/usr/bin/gentoo" SOFTWARE LIBRE, ¡Te da tu Libertad!
  19. 19. 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!
  20. 20. 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!
  21. 21. 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!
  22. 22. 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!
  23. 23. Gracias por su atención ● Contacto: psepulveda@gnuchile.cl psep@debian.cl pablo.sepulveda@member.fsf.org http://www.psep.cl SOFTWARE LIBRE, ¡Te da tu Libertad!
  24. 24. DESARROLLANDO LIBERTAD Y FUTURO http://www.gnuchile.cl
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×