Empaquetado de Ubuntu con la Guía de Debhelper

Empaquetado de Ubuntu con la Guía de Debhelper

Empaquetado de Ubuntu con la Guía de Debhelper

VALORACIÓN DEL ARTÍCULO:
5/5


Empaquetado con Debhelper

[Importante]

Requisitos: Los requisitos de la sección «Envasado desde cero» más debhelper y dh-make

Como empaquetador, rara vez creará paquetes desde cero como hemos hecho en la sección anterior. Como puede imaginar, muchas de las tareas e información del archivo de reglas , por ejemplo, son comunes a los paquetes. Para que el empaquetado sea más fácil y eficiente, puede utilizar debhelper para ayudar con estas tareas. Debhelper es un conjunto de scripts Perl (prefijados con dh_ ) que automatizan el proceso de creación de paquetes. Con estos scripts, la creación de un paquete Debian se vuelve bastante simple.

En este ejemplo, volveremos a construir el paquete Hello de GNU, pero esta vez estaremos comparando nuestro trabajo con el paquete hello-debhelper de Ubuntu . Nuevamente, cree un directorio donde estará trabajando:

mkdir ~/hello-debhelper cd ~/hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ubuntu cd ubuntu

Luego, obtenga el paquete fuente de Ubuntu:

apt-get source hello-debhelper cd…

Como en el ejemplo anterior, lo primero que tenemos que hacer es desempaquetar el tarball original (aguas arriba).

tar -xzvf hello-2.1.1.1.tar.gz

En lugar de copiar el fichero tar en hello_2.1.1.1.orig.tar.gz como hicimos en el ejemplo anterior, dejaremos que dh_make haga el trabajo por nosotros. Lo único que tiene que hacer es renombrar la carpeta de origen de modo que esté en la forma de donde packagename es en minúsculas. En este caso, sólo con quitar la tara del tarball se produce un directorio fuente con el nombre correcto para que podamos movernos a él:

cd hello-2.1.1

Para crear la «debianización» inicial de la fuente usaremos dh_make .

dh_make -e su.maintainer@dirección -f ../hello-2.1.1.1.tar.gz

dh_make le hará una serie de preguntas:

Tipo de paquete: binario simple, binario múltiple, biblioteca, módulo de kernel o cdbs? s/m/l/k/b] s

Nombre del encargado del mantenimiento : Dirección de correo electrónico del Captain Packager : packager@coolness.com Fecha : Thu, 6 Apr 2006 10:07:19 -0700 Package Name : hello Version : 2.1.1 License : blank Type of Package : Single Hit to confirm: Introducir

[Precaución]

Sólo ejecute dh_make -e una vez. Si lo ejecuta de nuevo después de hacerlo la primera vez, no funcionará correctamente. Si desea cambiarlo o cometió un error, elimine el directorio de origen y destarque la barra de tareas ascendente de nuevo. A continuación, puede migrar al directorio de origen e intentarlo de nuevo.

Ejecutar dh_make -e hace dos cosas:

  • Crea el archivo hello_2.1.1.1.orig.tar.gz en el directorio principal,
  • Crea los archivos básicos necesarios en debian/ y muchos archivos de plantilla (.ex) que pueden ser necesarios.

El programa Hello no es muy complicado, y como hemos visto en la sección «Packaging From Scratch», el empaquetado no requiere mucho más que los archivos básicos. Por lo tanto, eliminemos los archivos .ex :

cd debian rm *.ex *.EX

Para hello , tampoco

* Licencia

* Índice de la Guía de Embalaje de Ubuntu

necesidad LÉAME.Debian (archivo README para problemas específicos de Debian, no el README del programa), dirs (usado por dh_installdirs para crear los directorios necesarios), docs (usado por dh_installdocs para instalar la documentación del programa), o info (usado por dh_installinfo para instalar el archivo info) en el directorio debian . Para más información sobre estos archivos, consulte la sección «dh_make archivos de ejemplo».

En este punto, debería tener sólo changelog , compat , control , copyright , y reglas archivos en el directorio debian . Desde la sección llamada «Packaging From Scratch», el único archivo que es nuevo es compat , que es un archivo que contiene la versión debhelper que se utiliza (en este caso 4).

Necesitará ajustar el changelog ligeramente en este caso para reflejar que este paquete se llama hello-debhelper en lugar de sólo hello :

hello-debhelper (2.1.1-1) dapper; urgency=low * Initial release — Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

Usando debhelper , las únicas cosas que necesitamos cambiar en el control son el nombre (sustituyendo hello por hello-debhelper ) y añadiendo debhelper (>= 4.0.0) al campo Build-Depends del paquete fuente. El paquete Ubuntu para hello-debhelper tiene el siguiente aspecto:

Fuente: hello-debhelper Section: devel Priority: extra Maintainer: Capitan Packager Standards-Version: 3.6.1 Build-Depends: debhelper (>= 4) Paquete: hello-debhelper Architecture: any Depends: ${shlibs:Depends} Conflictos: hola Proporciona: hola Sustituye: hola Descripción: El saludo clásico y un buen ejemplo El programa hola de GNU produce un saludo familiar y amigable. Permite a los no programadores utilizar una herramienta informática clásica que de otro modo no estarían disponibles para ellos. . En serio: este es un ejemplo de cómo hacer un paquete Debian. Es la versión Debian del programa’hola al mundo’ del Proyecto GNU (que es en sí mismo un ejemplo para el Proyecto GNU). Esto es lo mismo que el paquete hello, excepto que usa debhelper para hacer el deb. Por favor, consulte debhelper para saber qué es.

Podemos copiar el archivo copyright y los scripts postinst y prerm del paquete Ubuntu hello-debhelper , ya que no han cambiado desde la sección «Packaging From Scratch». También copiaremos el archivo de reglas para poder inspeccionarlo.

cp …/../ubuntu/hello-debhelper-2.1.1/debian/copyright . cp…/../ubuntu/hello-debhelper-2.1.1/debian/postinst. cp…/../ubuntu/hello-debhelper-2.1.1/debian/prerm. cp../../ubuntu/helper-2.1.1.1/debian/rules.

El último archivo que necesitamos ver es rules , donde se puede ver la potencia de debhelper scripts. La versión del debhelper de las reglas es algo más pequeña (54 líneas frente a 72 líneas en la versión de la sección llamada «reglas»).

La versión de debhelper tiene el aspecto siguiente:

#!/usr/bin/make -f package = hello-debhelper CC = gcc CFLAGS = -g -Wall ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))) CFLAGS += -O2 endif #export DH_VERBOSE=1 clean: dh_testdir dh_clean rm -f build -$(MAKE) -i distclean install: build dh_clean dh_installdirs $(MAKE) prefix=$(CURDIR)/debian/$(package)/usr mandir=$(CURDIR)/debian/$(package)/usr/share/man infodir=$(CURDIR)/debian/$(package)/usr/share/info install build: ./configure –prefix=/usr $(MAKE) CC=»$(CC)» CFLAGS=»$(CFLAGS)»

touch build binary-indep: install # No hay archivos independientes de la arquitectura que cargar # generados por este paquete. Si los hubiera, se harían aquí. binary-archivo: instalar dh_testdir -a dh_testroot -a dh_installdocs -a NEWS dh_installchangelogs -a ChangeLog dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binario: binary-ind binary-ep binary-arch .PHONY: binario binario-arco binario binario-indep clean checkroot

Observe que tareas como probar si está en el directorio correcto ( dh_testdir ), asegurándose de que está construyendo el paquete con privilegios de root ( dh_testroot ), instalando documentación ( dh_installdocs y dh_installchangelogs ), y limpiando después de la compilación ( dh_clean ) se manejan automáticamente. Muchos paquetes mucho más complicados que hello tienen reglas archivos no más grandes porque los scripts debhelper manejan la mayoría de las tareas. Para una lista completa de los scripts debhelper , consulte la sección «Lista de scripts debhelper «. También están bien documentados en sus respectivas páginas man . Es un ejercicio útil para leer la página man (están bien escritas y no son largas) para cada script de ayuda usado en el archivo de reglas de arriba .

TAMBIÉN TE INTERESA

Instagram-Creator-Marketplace

España, a la espera del Instagram Creator Marketplace

Instagram es una de las redes sociales de mayor impacto en la población española. Desde su irrupción, la figura del influencer ha crecido enormemente en el mundo del marketing y las marcas. La herramienta Instagram Creator Marketplace puede seguir fortaleciendo a estos prescriptores, visto el potencial que empieza a tener este servicio en Estados Unidos.

avatares-Roblox

Vámonos de shopping en Roblox: Mango inaugura su primera tienda

En dinámico mundo de los juegos online, Roblox (con más de 70 millones de usuarios activos diarios) se ha destacado como una plataforma que ofrece a los participantes una experiencia única y diversa. Una de las características más populares de Roblox es su sistema de personalización de avatares, que permite a los jugadores expresar su

Snapdragon-8-Gen-3

Snapdragon 8 Gen 3, el chip de Qualcomm que empujará la IA en los móviles

La IA ha llegado al universo de los smartphones. Los últimos lanzamientos ya se anuncian con la inteligencia como protagonista. De igual manera, las grandes actualizaciones de software vienen marcada por la presencia de nuevas funciones movidas bajo los parámetros de la inteligencia artificial generativa. Al margen de los desarrollos a nivel de software, es

Ecowatch-1-de-Maxcom

Con el Ecowatch 1 no tendrás excusas para pasarte a un reloj inteligente

Sabemos que es muy difícil convencer a un perfil de personas que reniegan de un smartwatch a comprarse un reloj inteligente y quitarse el de toda la vida. No obstante, vamos a intentarlo con el Ecowatch 1 de Maxcom.  Es tarea complicada porque el gusto por los relojes suele estar muy definido en ciertas personas.

simulador-de-bodas

¿Te casas? La IA y DeWeed pueden ayudarte en la planificación de tu boda

La planificación de una boda es un proceso emocionante pero a menudo abrumador. Desde la selección del lugar perfecto hasta la elección del vestido ideal, hay innumerables decisiones que tomar para que todo salga según lo planeado en el gran día. Tradicionalmente, esta tarea ha supuesto muchos quebraderos de cabeza para los novios. Una vez