PDF de programación - Guía de creación de paquetes Debian

Guía de creación de paquetes Debiangráfica de visualizaciones

Publicado el 17 de Julio del 2017
619 visualizaciones desde el 17 de Julio del 2017
376,9 KB
86 paginas
Creado hace 2a (24/01/2017)
Guía de creación de paquetes Debian

Lucas Nussbaum

packaging-tutorial@packages.debian.org

version 0.19 – 2017-01-24

Guía de creación de paquetes Debian

1 / 86

Acerca de esta guía

Objetivo: ofrecer el conocimiento esencial para la creación de

paquetes de Debian

Modificar paquetes existentes
Crear sus propios paquetes
Comunicarse con la comunidad de Debian
Convertirse en un usuario avanzado de Debian

Cubre los aspectos más importantes, pero no es completo

Tendrá que leer más documentación

Most of the content also applies to Debian derivative distributions

Esto incluye Ubuntu

Guía de creación de paquetes Debian

2 / 86

Esquema

1 Introducción

2 Creación de paquetes fuente

3 Construir y comprobar paquetes

4 Ejercicio práctico 1: modificar el paquete grep

5 Aspectos avanzados de la creación de paquetes

6 Desarrollar paquetes en Debian

7 Conclusions

8 Additional practical sessions

9 Respuestas a ejercicios prácticos

Guía de creación de paquetes Debian

3 / 86

Esquema

1 Introducción

2 Creación de paquetes fuente

3 Construir y comprobar paquetes

4 Ejercicio práctico 1: modificar el paquete grep

5 Aspectos avanzados de la creación de paquetes

6 Desarrollar paquetes en Debian

7 Conclusions

8 Additional practical sessions

9 Respuestas a ejercicios prácticos

Guía de creación de paquetes Debian

4 / 86

Debian
Distribución GNU/Linux
La primera distribución mayoritaria desarrollada «de forma abierta, con el

espíritu de GNU»

No comercial, creado de forma colaborativa por más de 1.000 voluntarios
Tres características principales:

Calidad – cultura de excelencia técnica

Publicamos cuando está listo

Libertad – los desarrolladores y los usuarios se adhieren al Contrato

Social
Fomentando la cultura de Software libre desde 1993

Independencia – ninguna (única) compañía controla Debian

Proceso abierto de toma de decisiones (voluntariedad + democracia)

Amateur en el mejor sentido: creado por el placer de ello

Guía de creación de paquetes Debian

5 / 86

Paquetes Debian

Ficheros .deb (paquetes binarios)
Una potente y cómoda forma de distribuir software a los usuarios
One of the two most common package formats (with RPM)
Universal:

30.000 paquetes binarios en Debian

→ La mayoría del software libre está empaquetado para Debian
Con 12 adaptaciones (arquitecturas), incluyendo dos distintas a

Linux (Hurd y KFreeBSD)

Also used by 120 Debian derivative distributions

Guía de creación de paquetes Debian

6 / 86

El formato de paquete deb
Fichero .deb: un archivo ar

$ ar tv wget_1 .12 -2.1 _i386 . deb
4 Sep
rw -r - -r - - 0/0
rw -r - -r - - 0/0
2403 Sep
rw -r - -r - - 0/0 751613 Sep

5 15:43 2010 debian - binary
5 15:43 2010 control . tar . gz
5 15:43 2010 data . tar . gz

debian-binary: versión del formato de fichero «deb», "2.0\n"
control.tar.gz: Metadatos del paquete

control, sumas de control md5, (pre|post)(rm|inst), accionadores,
bibliotecas compartidas, . . .

data.tar.gz: Ficheros de datos del paquete

Puede crear sus propios ficheros .deb manualmente

http://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/

No obstante, la mayoría de las personas no lo hacen de esta forma

En esta guía: crear paquetes Debian, con el estilo Debian

Guía de creación de paquetes Debian

7 / 86

Herramientas necesarias

Un sistema Debian (o Ubuntu) con acceso de usuario «root»
Algunos paquetes:

build-essential: has dependencies on the packages that will be
assumed to be available on the developer’s machine (no need to
specify them in the Build-Depends: control field of your package)

también depende de dpkg-dev, que contiene las herramientas

específicas de Debian para la creación de paquetes

devscripts: contiene scripts útiles a los responsables de paquetes

de Debian

En el futuro se mencionarán otras herramientas, como textbfdebhelper, cdbs,
quilt, pbuilder, sbuild, lintian, svn-buildpackage, git-buildpackage, . . .
Instálelos a medida que los necesite

Guía de creación de paquetes Debian

8 / 86

Etapas generales en la creación de paquetes

Réplica de Debian

Red Código fuente original

apt-get source

dget

dh_make

Paquete fuente

Donde se reali-
za casi toda la
parte manual

debuild (Construir y comprobar con
lintian) o dpkg-buildpackage

Uno o varios paquetes binarios

.deb

Envío del paquete (dput)

Instalación (debi)

Guía de creación de paquetes Debian

9 / 86

Ejemplo: reconstruir dash
1 Install packages needed to build dash, and devscripts

sudo apt-get build-dep dash
(requires deb-src lines in /etc/apt/sources.list)
sudo apt-get install --no-install-recommends devscripts
fakeroot

2 Cree un directorio de trabajo y entre:

mkdir /tmp/debian-tutorial ; cd /tmp/debian-tutorial

3 Obtenga el paquete de fuentes de dash

apt-get source dash
(Requiere las líneas deb-src en /etc/apt/sources.list)

4 Construya el paquete

cd dash-*
debuild -us -uc

(-us -uc desactiva el firmado de paquetes con GPG)

5 Compruebe el funcionamiento

Hay algunos ficheros .deb nuevos en el directorio superior

6 Compruebe el directorio debian/

Aquí se realizan las tareas de empaquetado

Guía de creación de paquetes Debian

10 / 86

Esquema

1 Introducción

2 Creación de paquetes fuente

3 Construir y comprobar paquetes

4 Ejercicio práctico 1: modificar el paquete grep

5 Aspectos avanzados de la creación de paquetes

6 Desarrollar paquetes en Debian

7 Conclusions

8 Additional practical sessions

9 Respuestas a ejercicios prácticos

Guía de creación de paquetes Debian

11 / 86

Paquete fuente
Un paquete fuente puede generar varios paquetes binarios

Por ejemplo, las fuentes de libtar generan los paquetes binarios libtar0 y
libtar-dev

Dos tipos de paquete: (si duda, utilice el formato no nativo)

Paquetes nativos: habitualmente es software específico de Debian (dpkg,

apt)

Paquetes no nativos: software desarrollado fuera de Debian

Fichero principal: .dsc (metadatos)
Otros ficheros que dependen de la versión del formato de fuentes

1.0 or 3.0 (native): package_version.tar.gz
1.0 (non-native):

pkg_ver.orig.tar.gz : Fuente original de software
pkg_debver.diff.gz : Parche para añadir cambios específicos

de Debian

3.0 (quilt):

Debian

pkg_ver.orig.tar.gz : Fuente original de software
pkg_debver.debian.tar.gz : Archivo tar con los cambios de

(Para detalles precisos consulte dpkg-source(1))

Guía de creación de paquetes Debian

12 / 86

Ejemplo de paquete fuente (wget_1.12-2.1.dsc)

Format : 3.0 ( quilt )
Source : wget
Binary : wget
A r c h i t e c t u r e : any
Version : 1.12 -2.1
M a i n t a i n e r : Noel Kothe < n o e l @ d e b i a n . org >
Homepage : http :// www . gnu . org / software / wget /
Standards - Version : 3.8.4
Build - Depends : de b h e l p er ( > > 5.0.0) , gettext , texinfo ,

libssl - dev ( >= 0.9.8) , dpatch , info2man

Checksums - Sha1 :

50 d 4 e d 2 4 4 1 e 6 7 [..]1 e e 0e 9 4 2 4 8 2464747 wget_1 .12. orig . tar . gz
d 4 c 1 c 8 b b e 4 3 1 d [..] d d 7 c e f 3 6 1 1 48308 wget_1 .12 -2.1. debian . tar . gz

Checksums - Sha256 :

7578 e d 0 9 74 e 1 2 [..] d c b a 6 5 b 5 7 2 2464747 wget_1 .12. orig . tar . gz
1 e 9 b 0 c 4 c 0 0 e a e [..]89 c402ad78 48308 wget_1 .12 -2.1. debian . tar . gz

Files :

141461 b9c04e4 [..]9 d 1f 2 a b f 8 3 2464747 wget_1 .12. orig . tar . gz
e 9 3 1 2 3 c 9 3 4 e 3 c [..]2 f 3 8 0 27 8 c 2 48308 wget_1 .12 -2.1. debian . tar . gz

Guía de creación de paquetes Debian

13 / 86

Obtener un paquete fuente existente
Del archivo de Debian:

apt-get source paquete
apt-get source paquete=versión
apt-get source paquete/publicación

(Se requieren líneas deb-src en sources.list)

De Internet:

dget url-to.dsc
dget http://snapshot.debian.org/archive/debian-archive/

20090802T004153Z/debian/dists/bo/main/source/web/
wget_1.4.4-6.dsc
(snapshot.d.o proporciona todos los paquetes de Debian desde
2005)

Del sistema de control de versiones (declarado):

debcheckout paquete

Cuando finalice la descarga, extraiga los contenidos con dpkg-source -x

file.dsc

Guía de creación de paquetes Debian

14 / 86

Creación de un paquete fuente básico

Descargue las fuentes del desarrollador original

(fuente original = el que se obtiene de los desarrolladores originales del
software)

Renómbrelo a <paquete_fuente >_<versión_original >.orig.tar.gz

(ejemplo: simgrid_3.6.orig.tar.gz)

Abra el archivo tar
Rename the directory to <source_package >-<upstream_version >

(example: simgrid-3.6)

cd <source_package >-<upstream_version > && dh_make

(from the dh-make package)

Existen alternativas a dh_make para grupos específicos de paquete:

dh-make-perl, dh-make-php, . . .

Se crea el directorio debian/, que contiene muchos ficheros

Guía de creación de paquetes Debian

15 / 86

Ficheros en «debian/»
Todas las tareas de empaquetado se deben realizar modificando ficheros en
debian/

Ficheros principales:

control – Metadatos del paquete (dependencias, etc)
rules – Especifica cómo construir el paquete
copyright – Información de derechos de autor del paquete
changelog – Registro histórico del paquete de Debian

Otros ficheros:

compat
watch
dh_install* targets

*.dirs, *.docs, *.manpages, . . .

scripts de desarrollador

*.postinst, *.prerm, . . .

source/format
patches/ – si tiene que modificar las fuentes del desarrollador original

Varios ficheros utilizan un formato basado en
  • Links de descarga
http://lwp-l.com/pdf5497

Comentarios de: Guía de creación de paquetes Debian (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad