Ir al contenido

Diferencia entre revisiones de «Deb»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Born2fail (discusión · contribs.)
mSin resumen de edición
LordT (discusión · contribs.)
mSin resumen de edición
Línea 3: Línea 3:
{{Infobox formato de archivo
{{Infobox formato de archivo
| Nombre = Paquete debian
| Nombre = Paquete debian
| Icono =
| Icono = [[Image:Torchlight deb.png|50px]]
| Logo =
| Logo =
| Captura =
| Captura =
Línea 35: Línea 35:
Los paquetes y el sistema de paquetes son parte fundamental dentro de Debian. El esfuerzo de muchos desarrolladores se centra en “debianizar” fuentes, es decir adaptar ficheros fuentes para que funcionen de acuerdo con el sistema de paquetes de Debian. Cualquier persona puede realizar un paquete aunque para que éste forme parte de la distribución debe ser desarrollador oficial.
Los paquetes y el sistema de paquetes son parte fundamental dentro de Debian. El esfuerzo de muchos desarrolladores se centra en “debianizar” fuentes, es decir adaptar ficheros fuentes para que funcionen de acuerdo con el sistema de paquetes de Debian. Cualquier persona puede realizar un paquete aunque para que éste forme parte de la distribución debe ser desarrollador oficial.


'''1.- Obtener los archivos fuentes'''
=== Obtener los archivos fuentes ===
Necesitamos disponer de los ficheros fuentes con el código original del programa que queremos “debianizar”. Para este ejemplo utilizaremos las fuentes del programa “Hello” que muestra un mensaje de bienvenida por la pantalla. Descomprimimos las fuentes (normalmente se encuentran en un archivo.tgz), en este caso el archivo se llama “hello_2.1.1.tar.gz”
Necesitamos disponer de los ficheros fuentes con el código original del programa que queremos “debianizar”. Para este ejemplo utilizaremos las fuentes del programa “Hello” que muestra un mensaje de bienvenida por la pantalla. Descomprimimos las fuentes (normalmente se encuentran en un archivo.tgz), en este caso el archivo se llama “hello_2.1.1.tar.gz”


'''2.- Ver como funciona el programa'''
=== Ver como funciona el programa ===


Una vez obtenidos los archivos fuentes del programa lo configuramos, compilamos e instalamos (./configure, make, make install). Para crear un paquete Debian se debe estar familiarizado con el programa y haberlo utilizado muchas veces.
Una vez obtenidos los archivos fuentes del programa lo configuramos, compilamos e instalamos (./configure, make, make install). Para crear un paquete Debian se debe estar familiarizado con el programa y haberlo utilizado muchas veces.


'''4.- Modificando los fuentes'''
=== Modificando los fuentes ===


Algunos cambios comunes en los ficheros fuente son:
Algunos cambios comunes en los ficheros fuente son:


==== Cambiar la ruta de instalación ====
''4.1 Cambiar la ruta de instalación:'' Normalmente los programas se instalan en el directorio /usr/local. En Debian este directorio está reservado para las aplicaciones del administrador del sistema. Los programas en Debian deben instalarse en la ruta /usr/bin. Normalmente los programas utilizan el fichero “makefile” como guión para compilar. Por lo tanto deberemos mirar en este archivo y cambiar la línea:


Normalmente los programas se instalan en el directorio /usr/local. En Debian este directorio está reservado para las aplicaciones del administrador del sistema. Los programas en Debian deben instalarse en la ruta /usr/bin. Normalmente los programas utilizan el fichero “makefile” como guión para compilar. Por lo tanto deberemos mirar en este archivo y cambiar la línea:
BIN = /usr/local/bin

BIN = /usr/local/bin
por:
por:
BIN = /usr/bin
BIN = /usr/bin


==== Cambiar las librerías ====
''4.2 Cambiar las librerías:'' Normalmente en el fichero “makefile” se hace referencia a librerías que puede que no se encuentren en Debian o ni siquiera en Linux. Por lo tanto habrá que cambiar esas librerías por otras que existan en Debian y que hagan lo mismo.


Normalmente en el fichero “makefile” se hace referencia a librerías que puede que no se encuentren en Debian o ni siquiera en Linux. Por lo tanto habrá que cambiar esas librerías por otras que existan en Debian y que hagan lo mismo.


'''5.- Proceso de debianización. Directorio /debian'''
=== Proceso de debianización. Directorio /debian ===


Nos situamos en el directorio de hacemos:
Nos situamos en el directorio de hacemos:


“dh_make -e tudirección@de.correo -f ../hello_2.1.1.orig.tar.gz”.
$ dh_make -e tudirección@de.correo -f ../hello_2.1.1.orig.tar.gz


“dh_make” es un paquete que probablemente no tengamos instalado en nuestro sistema por lo que habrá que descargarlo: “apt-get install dh_make”. Se trata de un script para debianizar fuentes. Tras ejecutar este comando nos creará, dentro del directorio donde se encuentran las fuentes, la carpeta “debian” que contendrá una estructura de archivos necesaria para crear el paquete de Debian. Bajo el directorio /debian hay algunos ficheros que no pueden faltar y que habrá que editar para completar lo que hizo por defecto “dh_make”, estos ficheros son:
“dh_make” es un paquete que probablemente no tengamos instalado en nuestro sistema por lo que habrá que descargarlo: “apt-get install dh_make”. Se trata de un script para debianizar fuentes. Tras ejecutar este comando nos creará, dentro del directorio donde se encuentran las fuentes, la carpeta "debian" que contendrá una estructura de archivos necesaria para crear el paquete de Debian. Bajo el directorio /debian hay algunos ficheros que no pueden faltar y que habrá que editar para completar lo que hizo por defecto "dh_make", estos ficheros son:


Fichero “control”: Este fichero contiene varios valores que “dpkg” y “dselect” usarán para gestionar el paquete. Por ejemplo, nombre del paquete, desarrollador, prioridad, dependencias, arquitecturas soportadas, descripción.
Fichero "control": Este fichero contiene varios valores que "dpkg" y "dselect" usarán para gestionar el paquete. Por ejemplo, nombre del paquete, desarrollador, prioridad, dependencias, arquitecturas soportadas, descripción.


Fichero “copyright”: Este fichero contiene la información sobre la licencia y copyright de las fuentes originales del paquete.
Fichero "copyright": Este fichero contiene la información sobre la licencia y copyright de las fuentes originales del paquete.


Fichero “changelog”: Este fichero contiene información que usan dpkg y otros programas para obtener el número de versión, revisión, distribución y urgencia de tu paquete.
Fichero "changelog": Este fichero contiene información que usan dpkg y otros programas para obtener el número de versión, revisión, distribución y urgencia de tu paquete.

Fichero “rules”: Ahora se necesita mirar las reglas exactas que “dpkg-buildpackage” utilizará para crear el paquete. Este fichero es en realidad otro Makefile, pero diferente al que viene en las fuentes originales. A diferencia de otros ficheros en debian/, éste necesita ser configurado como ejecutable. “dh_make” te crea un por defecto que debería servir para paquetes simples.


Fichero "rules": Ahora se necesita mirar las reglas exactas que "dpkg-buildpackage" utilizará para crear el paquete. Este fichero es en realidad otro Makefile, pero diferente al que viene en las fuentes originales. A diferencia de otros ficheros en debian/, éste necesita ser configurado como ejecutable. "dh_make" te crea un por defecto que debería servir para paquetes simples.


Dentro del directorio /debian, además de estos ficheros hay muchos más. Algunos de ellos tiene la extensión.ex, esto indica que son ejemplos.
Dentro del directorio /debian, además de estos ficheros hay muchos más. Algunos de ellos tiene la extensión.ex, esto indica que son ejemplos.


'''6.- Crear el paquete'''
=== Crear el paquete ===


Entramos en el directorio principal del programa y ejecutamos:
Entramos en el directorio principal del programa y ejecutamos:


“dpkg-buildpackage -rfakeroot”
$ dpkg-buildpackage -rfakeroot


Te pedirá que introduzcas dos veces tu clave PGP. Tras ejecutarse, en el directorio inmediatamente superior aparecerán una serie de archivos:
Te pedirá que introduzcas dos veces tu clave PGP. Tras ejecutarse, en el directorio inmediatamente superior aparecerán una serie de archivos:


hello_x.x.orig.tar.gz: Es el código fuente original.
* <code>hello_x.x.orig.tar.gz</code>: Es el código fuente original.
* <code>hello_x.x.diff.gz</code>: Este fichero comprimido contiene todos y cada uno de los cambios que se hizo al código fuente original.
* <code>hello_x.x.dsc</code>: Es una breve descripción del paquete, está firmada con PGP por la persona que lo ha empaquetado y tiene una valor de control (función hash MD5) de los dos ficheros anteriores para poder detectar si han sido modificados por alguien ajeno al desarrollador.
* <code>hello_x.x_i386.deb</code>: Este es el paquete binario completo. Puedes usar "dpkg" para instalar o eliminar tanto éste paquete como cualquier otro.
* <code>hello_x.x_i386.changes</code>: Este fichero describe todos los cambios hechos en la revisión actual del paquete, y es usado por los programas de gestión del archivo FTP para instalar los paquetes binarios y fuentes en él. Se genera parcialmente a partir del fichero “changelog” y el <code>fichero.dsc</code>. Este fichero está firmado con PGP o GPG, de forma que cualquiera puedes estar aún más seguro de que es realmente tuyo.


== Véase también ==
hello_x.x.diff.gz: Este fichero comprimido contiene todos y cada uno de los cambios que se hizo al código fuente original.


* [[Debian]]
hello_x.x.dsc: Es una breve descripción del paquete, está firmada con PGP por la persona que lo ha empaquetado y tiene una valor de control (función hash MD5) de los dos ficheros anteriores para poder detectar si han sido modificados por alguien ajeno al desarrollador.
* [[RPM Package Manager]]


== Enlaces externos ==
hello_x.x_i386.deb: Este es el paquete binario completo. Puedes usar “dpkg” para instalar o eliminar tanto éste paquete como cualquier otro.

hello_x.x_i386.changes: Este fichero describe todos los cambios hechos en la revisión actual del paquete, y es usado por los programas de gestión del archivo FTP para instalar los paquetes binarios y fuentes en él. Se genera parcialmente a partir del fichero “changelog” y el fichero.dsc. Este fichero está firmado con PGP o GPG, de forma que cualquiera puedes estar aún más seguro de que es realmente tuyo.





*[http://www.debian.org/doc/FAQ/ch-pkg_basics Debian FAQ: Basics of the Debian package management system] {{en}}
*[http://lists.debian.org/debian-user/2001/07/msg00645.html debian-user post on manipulating debs directly with standard unix tools] {{en}}
*[http://www.newlinuxuser.com/?p=107 Artículo en que explica como crear paquetes .deb] {{en}}


[[Categoría:Debian]]
[[Categoría:Debian]]
[[Categoría:Extensiones PC]]


[[ca:DEB]]
[[ca:DEB]]

Revisión del 16:10 25 dic 2007

Plantilla:Infobox formato de archivo

deb es la extensión del formato de paquetes de software de Debian, y el nombre más usado para dichos paquetes. Como Debian, su nombre proviene de Deborah Murdock, esposa del fundador Ian Murdock.

El programa predeterminado para manejar estos paquetes es dpkg, generalmente via el sistema APT.

Los paquetes deb también pueden ser convertidos a otros formatos de paquetes usando la aplicación Alien, y viceversa.

Estructura Interna

Los paquetes deb son un ar estándar. Estos paquetes contienen tres archivos:

  • debian-binary - número de versión del formato deb
  • control.tar.gz - toda la metainformación del paquete
  • data.tar.gz - los archivos que se instalan

Creación de un paquete de Debian

Los paquetes y el sistema de paquetes son parte fundamental dentro de Debian. El esfuerzo de muchos desarrolladores se centra en “debianizar” fuentes, es decir adaptar ficheros fuentes para que funcionen de acuerdo con el sistema de paquetes de Debian. Cualquier persona puede realizar un paquete aunque para que éste forme parte de la distribución debe ser desarrollador oficial.

Obtener los archivos fuentes

Necesitamos disponer de los ficheros fuentes con el código original del programa que queremos “debianizar”. Para este ejemplo utilizaremos las fuentes del programa “Hello” que muestra un mensaje de bienvenida por la pantalla. Descomprimimos las fuentes (normalmente se encuentran en un archivo.tgz), en este caso el archivo se llama “hello_2.1.1.tar.gz”

Ver como funciona el programa

Una vez obtenidos los archivos fuentes del programa lo configuramos, compilamos e instalamos (./configure, make, make install). Para crear un paquete Debian se debe estar familiarizado con el programa y haberlo utilizado muchas veces.

Modificando los fuentes

Algunos cambios comunes en los ficheros fuente son:

Cambiar la ruta de instalación

Normalmente los programas se instalan en el directorio /usr/local. En Debian este directorio está reservado para las aplicaciones del administrador del sistema. Los programas en Debian deben instalarse en la ruta /usr/bin. Normalmente los programas utilizan el fichero “makefile” como guión para compilar. Por lo tanto deberemos mirar en este archivo y cambiar la línea:

 BIN = /usr/local/bin

por:

 BIN = /usr/bin

Cambiar las librerías

Normalmente en el fichero “makefile” se hace referencia a librerías que puede que no se encuentren en Debian o ni siquiera en Linux. Por lo tanto habrá que cambiar esas librerías por otras que existan en Debian y que hagan lo mismo.

Proceso de debianización. Directorio /debian

Nos situamos en el directorio de hacemos:

$ dh_make -e tudirección@de.correo -f ../hello_2.1.1.orig.tar.gz

“dh_make” es un paquete que probablemente no tengamos instalado en nuestro sistema por lo que habrá que descargarlo: “apt-get install dh_make”. Se trata de un script para debianizar fuentes. Tras ejecutar este comando nos creará, dentro del directorio donde se encuentran las fuentes, la carpeta "debian" que contendrá una estructura de archivos necesaria para crear el paquete de Debian. Bajo el directorio /debian hay algunos ficheros que no pueden faltar y que habrá que editar para completar lo que hizo por defecto "dh_make", estos ficheros son:

Fichero "control": Este fichero contiene varios valores que "dpkg" y "dselect" usarán para gestionar el paquete. Por ejemplo, nombre del paquete, desarrollador, prioridad, dependencias, arquitecturas soportadas, descripción.

Fichero "copyright": Este fichero contiene la información sobre la licencia y copyright de las fuentes originales del paquete.

Fichero "changelog": Este fichero contiene información que usan dpkg y otros programas para obtener el número de versión, revisión, distribución y urgencia de tu paquete.

Fichero "rules": Ahora se necesita mirar las reglas exactas que "dpkg-buildpackage" utilizará para crear el paquete. Este fichero es en realidad otro Makefile, pero diferente al que viene en las fuentes originales. A diferencia de otros ficheros en debian/, éste necesita ser configurado como ejecutable. "dh_make" te crea un por defecto que debería servir para paquetes simples.

Dentro del directorio /debian, además de estos ficheros hay muchos más. Algunos de ellos tiene la extensión.ex, esto indica que son ejemplos.

Crear el paquete

Entramos en el directorio principal del programa y ejecutamos:

 $ dpkg-buildpackage -rfakeroot

Te pedirá que introduzcas dos veces tu clave PGP. Tras ejecutarse, en el directorio inmediatamente superior aparecerán una serie de archivos:

  • hello_x.x.orig.tar.gz: Es el código fuente original.
  • hello_x.x.diff.gz: Este fichero comprimido contiene todos y cada uno de los cambios que se hizo al código fuente original.
  • hello_x.x.dsc: Es una breve descripción del paquete, está firmada con PGP por la persona que lo ha empaquetado y tiene una valor de control (función hash MD5) de los dos ficheros anteriores para poder detectar si han sido modificados por alguien ajeno al desarrollador.
  • hello_x.x_i386.deb: Este es el paquete binario completo. Puedes usar "dpkg" para instalar o eliminar tanto éste paquete como cualquier otro.
  • hello_x.x_i386.changes: Este fichero describe todos los cambios hechos en la revisión actual del paquete, y es usado por los programas de gestión del archivo FTP para instalar los paquetes binarios y fuentes en él. Se genera parcialmente a partir del fichero “changelog” y el fichero.dsc. Este fichero está firmado con PGP o GPG, de forma que cualquiera puedes estar aún más seguro de que es realmente tuyo.

Véase también

Enlaces externos