wiki:recompilar_reconstruir_paquetes_deb_desde_codigos_fuente

Recompilar o Reconstruir paquetes Debian (.deb) desde los códigos fuente

Es común en el mundo del software libre estudiar el código fuente o corregir código erróneo. Para lograr esto, se necesita descargar el código fuente del programa.

Para este ejemplo trabajaremos con las fuentes de Meld (Es una herramienta que permite al usuario ver los cambios entre, y fusionar, dos archivos, dos directorios, o dos archivos con un ancestro común.)

Primero creamos un directorio y entramos en el, allí trabajaremos y haremos las pruebas:

$ mkdir tmp && cd tmp

Luego, descargamos las fuentes del paquete Meld. Con las fuentes podemos hacer modificaciones, compilar e instalar el programa y construir o reconstruir un paquete original o con modificaciones.

tmp$ apt-get source meld

Eso nos descargará los siguientes directorios y ficheros:

meld-3.12.1/
meld_3.12.1-2.debian.tar.xz
meld_3.12.1-2.dsc
meld_3.12.1.orig.tar.xz

Un paquete fuente generalmente consiste de tres archivos: .dsc, .orig.tar.gz y .debian.tar.gz (o .diff.gz). Ellos permiten la creación de paquetes binarios .deb, partir de los archivos de código fuente del programa, escritos en un lenguaje de programación.

El fichero .dsc (Debian Source Control) en español: Control de Fuente Debian, es un archivo de texto corto que contiene una cabecera RFC 2822 que describe el paquete fuente e indica qué otros archivos forman parte del mismo, similar a la del fichero control que esta en el directorio raiz en la carpeta debian.

El fichero .dsc es utilizado por dbpkg-source para descomprimir el paquete en el directorio raiz, como descargamos las fuentes con apt-get se nos crea el directorio raíz por defecto, es este caso meld-3.12.1/

¿Que es dpkg-source?

Es una herramienta de manipulación de paquetes fuente de Debian, empaqueta y desempaqueta los archivos fuente.

Con cada paquete descargado existe un directorio debian/ que contiene los archivos necesarios para crear un paquete .deb, en este caso, ese directorio esta dentro de la carpeta meld-3.12.1/ que es el directorio raíz de las fuentes.

Entramos en el directorio raíz de las fuentes:

temp$ cd meld-3.12.1/

Ahora ejecutamos el comando que construirá nuestro .deb en el directorio tmp/

tmp/meld-3.12.1$ dpkg-buildpackage -rfakeroot

¿Que es dpkg-buildpackage?

Es un programa que automatiza el proceso de construcción de un paquete Debian.

¿Y fakeroot?

Proporciona un entorno de raíz temporal, elimina la necesidad de convertirse en root para la construcción del paquete.

Al final, dentro de nuestro directorio tmp/ tendremos nuestro .deb construido.

tmp/
  meld_3.12.1-2_all.deb
Last modified 8 years ago Last modified on Aug 25, 2016, 5:54:06 PM