Skip to main content

Guía de empaquetado de Ubuntu - Empaquetado con Debhelper

Samsung Galaxy A9 (2016) Battery Repair Guide (Abril 2025)

Samsung Galaxy A9 (2016) Battery Repair Guide (Abril 2025)

Tabla de contenido:

Anonim

Embalaje con Debhelper

Importante

Requisitos: Los requisitos de la sección llamada "Empaquetado desde cero" más debhelper y dh-make

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

En este ejemplo, nuevamente compilaremos el paquete Hello de GNU, pero esta vez compararemos nuestro trabajo con Ubuntu hola-debhelper paquete. Nuevamente, crea un directorio donde estarás 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 debemos hacer es desempaquetar el tarball original (ascendente).

tar -xzvf hello-2.1.1.tar.gz

En lugar de copiar el tarball aguas arriba para hello_2.1.1.orig.tar.gz como hicimos en el ejemplo anterior, vamos a dejar dh_make hacer el trabajo por nosotros. Lo único que tienes que hacer es cambiar el nombre de la carpeta de origen para que esté en la forma de - donde packagename es minúscula. En este caso, solo al descomprimir el archivo comprimido se crea un directorio de origen 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 your.maintainer@address -f ../hello-2.1.1.tar.gz

dh_make te hará una serie de preguntas:

Tipo de paquete: binario único, binario múltiple, biblioteca, módulo del kernel o cdbs? s / m / l / k / b s Nombre del mantenedor: Captain Packager Dirección de correo electrónico: [email protected] Fecha: Jue, 6 de abril de 2006 10:07:19 -0700 Nombre del paquete: hello Versión: 2.1.1 Licencia: en blanco Tipo de paquete: Hit único para confirmar: Entrar

Precaución

Solo correr dh_make -e una vez. Si lo ejecutas nuevamente después de hacerlo la primera vez, no funcionará correctamente. Si desea cambiarlo o cometió un error, elimine el directorio de origen y vuelva a descomprimir el archivo comprimido ascendente. Luego puede migrar al directorio de origen e intentarlo de nuevo.

Corriendo dh_make -e hace dos cosas:

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

los Hola El programa no es muy complicado, y como hemos visto en la sección llamada "Empaquetado desde cero", el empaquetado no requiere mucho más que los archivos básicos. Por lo tanto, vamos a quitar el .ex archivos:

cd debian rm * .ex * .EX

por Hola, usted tampoco lo hará

* Licencia

* Índice de Guía de Empaque de Ubuntu

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

En este punto, debe tener sólo registro de cambios, compat, controlar, derechos de autory reglas archivos en el debian directorio. En la sección llamada "Empaquetado desde cero", el único archivo nuevo es compat, que es un archivo que contiene el debhelper Versión (en este caso 4) que se utiliza.

Tendrá que ajustar el registro de cambiosligeramente en este caso para reflejar que este paquete se llama hola-debhelper en lugar de solo Hola:

hola-debhelper (2.1.1-1) apuesto; urgencia = baja * Lanzamiento inicial - Captain Packager Jue, 6 de abril de 2006 10:07:19 -0700

Mediante el uso debhelper, las únicas cosas que necesitamos cambiar en controlar son el nombre (sustituyendo Hola para hola-debhelper) y añadiendo debhelper (> = 4.0.0) al Construir-Depende campo para el paquete fuente. El paquete de Ubuntu para hola-debhelper parece:

Fuente: hello-debhelper Sección: devel Prioridad: extra Mantenedor: Capitan Packager Estándar-Versión: 3.6.1 Build-Depends: debhelper (> = 4) Paquete: hello-debhelper Arquitectura: any Depends: $ {shlibs: Depends} Conflictos: hola Proporciona: hola Reemplaza: hola Descripción: El saludo clásico y un buen ejemplo El programa de saludo de GNU produce un saludo familiar y amigable. Permite que los no programadores utilicen una herramienta informática clásica que, de lo contrario, no estaría disponible para ellos. . En serio, sin embargo: este es un ejemplo de cómo hacer un paquete Debian. Es la versión de Debian del programa 'hola mundo' del Proyecto GNU (que es en sí mismo un ejemplo para el Proyecto GNU). . Este es el mismo que el paquete de saludo, excepto que usa debhelper para hacer el deb. Por favor, vea debhelper en cuanto a lo que es.

Podemos copiar el derechos de autor archivo y el postinst y prerm scripts de Ubuntu hola-debhelper paquete, ya que no han cambiado desde la sección llamada "Empaquetado desde cero". También copiaremos el reglas Archivo para que podamos 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/hello-debhelper-2.1.1/debian/rules.

El último archivo que necesitamos ver es reglas, donde el poder de debhelper Se pueden ver guiones. los debhelper versión de reglas es algo más pequeño (54 líneas a diferencia de 72 líneas en la versión de la sección llamada "reglas").

los debhelper la versión se ve como

#! / 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 instalar: construir dh_clean dh_installdirs $ (MAKE) prefijo = $ (CURDIR) / debian / $ (package) / usr mandir = $ (CURDIR) / debian / $ (paquete) / usr / share / man infodir = $ (CURDIR) / debian / $ (paquete) / 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 para cargar # generados por este paquete. Si hubiera alguno, serían hechos aquí. arco binario: instale dh_testdir -a dh_testroot -a dh_installdocs -a NOVEDADES dh_installchangelogs -a ChangeLog dh_strip -a dh_compress -ata- ralea_foto_es_completo_es_es_completo_es_es_completo_es_completo_es_es_completo_es_es_completo_es_es_completo_es_es_completo_es_es_completo_es_es_completo_es_es_completo_es- arch .PHONY: binario binario-binario binario-indep limpieza checkroot

Tenga en cuenta que las tareas como las pruebas si está en el directorio correcto (dh_testdir), asegurándose de que está compilando el paquete con privilegios de root (dh_testroot), instalando la documentación (dh_installdocs y dh_installchangelogs), y la limpieza después de la construcción (dh_clean) se manejan automáticamente. Muchos paquetes mucho más complicados que Hola tener reglas archivos no más grandes porque el debhelper Los scripts manejan la mayoría de las tareas. Para una lista completa de debhelper Scripts, por favor vea la sección llamada "Lista de debhelper guiones ". También están bien documentados en sus respectivos hombre páginas Es un ejercicio útil para leer la página del manual (están bien escritas y no son largas) para cada script de ayuda utilizado en la parte superior. reglas expediente.