Scroll to navigation

DH(1) Debhelper DH(1)
 

NOMBRE

dh - Secuenciador de órdenes de debhelper

SINOPSIS

dh sequence [--with addon[,addon ...]] [ --list] [ opciones-de-debhelper]

DESCRIPCIÓN

dh ejecuta una secuencia de órdenes de debhelper. Las secuencias aceptadas se corresponden con los objetivos de un fichero debian/rules: build-arch, build-indep, build, clean, install-indep, install-arch, install, binary-arch, binary-indep, y binary.

OBJETIVOS «OVERRIDE»

Un fichero debian/rules que utiliza dh puede sustituir la orden que se ejecuta en cualquier punto de una secuencia, definiendo un objetivo «override».
To override dh_command, add a target named override_dh_command to the rules file. When it would normally run dh_command, dh will instead call that target. The override target can then run the command with additional options, or run entirely different commands instead. See examples below.
Los objetivos «override» también se pueden definir para que se ejecuten solo al consuitr paquetes dependientes o independientes de la arquitectura. Utilice objetivos con nombres como override_dh_orden -arch y override_dh_orden-indep. Tenga en cuenta que para utilizar esta funcionalidad, el paquete debe tener una dependencia de construcción sobre la versión 7.0.50 o superior de debhelper.

OPCIONES

--with extensión[,extensión,...]
Añade las órdenes de debhelper definidas por la extensión dada a los lugares apropiados de la secuencia de órdenes que se va a ejecutar. Esta opción se puede repetir varias veces, o puede listar varias extensiones separadas por comas. Se utiliza cuando hay un paquete de terceras fuentes que proporciona órdenes de debhelper. Para más documentación sobre la interfaz de extensión de secuencia consulte el fichero PROGRAMMING.
--without extensión
Lo contrario de --with, desactiva la extensión dada. Esta opción puede aparecer más de una vez, o puede enumerar, separadas por comas, varias extensiones que desactivar.
--list, -l
Lista todas las extensiones disponibles.
--no-act
Muestra las órdenes que se ejecutarían para una secuencia dada, pero no las ejecuta.
Note that dh normally skips running commands that it knows will do nothing. With --no-act, the full list of commands in a sequence is printed.
Las otras opciones introducidas a dh se introducen a cada orden que ejecuta. Puede utilizar esto para definir una opción como -v, -X o -N, así como opciones más especializadas.

EJEMPLOS

Para ver qué órdenes se incluyen en una secuencia, sin hacer nada en realidad:
        dh binary-arch --no-act
Este es un fichero «rules» muy sencillo para paquetes donde las secuencias predeterminadas de órdenes funcionan sin opciones adicionales.
        #!/usr/bin/make -f
        %:
                dh $@
A menudo, querrá introducir una opción a una orden de debhelper en particular. La forma sencilla de hacerlo es añadir un objetivo «overrride» para esa orden.
        #!/usr/bin/make -f
        %:
                dh $@
        
        override_dh_strip:
                dh_strip -Xfoo
        
        override_dh_auto_configure:
                dh_auto_configure -- --with-foo --disable-bar
En ocasiones, las órdenes automatizadas dh_auto_configure(1) y dh_auto_build(1) no pueden averiguar qué hacer con un paquete extraño. A continuación puede ver cómo evitar que se ejecuten para que así pueda ejecutar sus propias órdenes.
        #!/usr/bin/make -f
        %:
                dh $@
        override_dh_auto_configure:
                ./mondoconfig
        override_dh_auto_build:
                make universe-explode-in-delight
Otra caso común es que desee hacer algo manualmente antes o después de que se ejecute una orden en particular de debhelper.
        #!/usr/bin/make -f
        %:
                dh $@
        override_dh_fixperms:
                dh_fixperms
                chmod 4755 debian/foo/usr/bin/foo
Si su paquete utiliza Autotools y desea actualizar config.sub y config.guess con nuevas versiones del paquete autotools-dev en tiempo de ejecución, puede utilizar algunas órdenes proporcionadas por autotools-dev que automatizan esta tarea, como puede ver a continuación.
        #!/usr/bin/make -f
        %:
                dh $@ --with autotools_dev
dh no ejecuta las herramientas de Python de forma predeterminada debido al cambio continuo de ese campo. (dh ejecuta dh_pysupport en un nivel de compatibilidad anterior a v9). A continuación puede ver cómo se utiliza dh_python2.
        #!/usr/bin/make -f
        %:
                dh $@ --with python2
A continuación puede ver como forzar el uso del sistema de construcción del módulo Perl Module::Build, lo cual puede ser necesario si debhelper detecta erróneamente que el paquete utiliza MakeMaker.
        #!/usr/bin/make -f
        %:
                dh $@ --buildsystem=perl_build
Aquí tiene un ejemplo de cómo sobreescribir la ubicación dónde las órdenes dh_auto_* encuentran el código fuente de un paquete, para un paquete en el que las fuentes se ubican en un subdirectorio.
        #!/usr/bin/make -f
        %:
                dh $@ --sourcedirectory=src
Y aquí tiene un ejemplo de cómo indicar a las órdenes dh_auto_ * que realicen la construcción en un subdirectorio, que se eliminará mediante clean.
        #!/usr/bin/make -f
        %:
                dh $@ --builddirectory=build
Si su paquete se puede construir en paralelo, puede permitir la construcción en paralelo de la siguiente manera. Por ello, la orden dpkg-buildpackage -j funcionará.
        #!/usr/bin/make -f
        %:
                dh $@ --parallel
A continuación puede ver cómo evitar que dh ejecute varias órdenes que no desea que se ejecuten. Para ello, defina objetivos «override» vacíos para cada orden.
        #!/usr/bin/make -f
        %:
                dh $@
        
        # Órdenes que no se ejecutan:
        override_dh_auto_test override_dh_compress override_dh_fixperms:
Puede utilizar «overrides» independientes de la arquitectura para separar un proceso de construcción largo de un paquete de documentación. Éstos se omiten al ejecutar las secuencias build-arch y binary-arch.
        #!/usr/bin/make -f
        %:
                dh $@
        
        override_dh_auto_build-indep:
                $(MAKE) -C docs
        # No se requieren comprobaciones para los documentos
        override_dh_auto_test-indep:
        override_dh_auto_install-indep:
                $(MAKE) -C docs install
Continuando con el ejemplo anterior, suponga que necesita ejecutar «chmod» sobre un fichero, pero solo al construir el paquete dependiente de la arquitectura, ya que no está presente cuando solo se construye documentación.
        override_dh_fixperms-arch:
                dh_fixperms
                chmod 4755 debian/foo/usr/bin/foo

FUNCIONAMIENTO INTERNO

Si siente curiosidad por el funcionamiento interno de dh, a continuación puede ver como funciona por dentro.
Cada orden de debhelper registra una ejecución exitosa en debian/package.debhelper.log. (que dh_clean elimina). Gracias a ello, dh puede conocer qué órdenes se han ejecutado, para qué paquetes, y omitir ejecutar esas órdenes otra vez.
Cada vez que se ejecuta dh, comprueba el registro y encuentra la última orden registrada contenida en la secuencia especificada. Después, continua con la siguiente orden en la secuencia. Las opciones --until, --before, --after y --remaining pueden anular este comportamiento.
Una secuencia también puede ejecutar objetivos dependientes de la arquitectura en «debian/rules». Por ejemplo, la secuencia «binary» también ejecuta el objeto «install».
dh utiliza la variable de entorno DH_INTERNAL_OPTIONS para introducir información a las órdenes de debhelper que se ejecutan dentro de objetivos «override». El contenido (e incluso, la existencia) de esta variable de entorno, como el nombre sugiere, está sujeto a cambios en cualquier momento.
La opción -i se introduce a las órdenes en las secuencias binary-indep, install-indep y binary-indep para asegurar que sólo actúan sobre paquetes independientes de la arquitectura, y la opción -a se introduce a órdenes en las secuencias build-arch, install-arch y binary-arch para asegurar que sólo actúan sobre paquetes dependientes de la arquitectura.

OPCIONES OBSOLETAS

Las siguientes opciones están obsoletas. Se recomienda utilizar en su lugar objetivos «override».
--until orden
Ejecuta las órdenes en la secuencia hasta la orden, incluido, y cierra.
--before orden
Ejecuta las órdenes en la secuencia anteriores a orden, y cierra.
--after orden
Ejecuta las órdenes en la secuencia posteriores a orden.
--remaining
Ejecuta todas las órdenes en la secuencia que aún no se han ejecutado.
En las opciones anteriores, orden puede ser el nombre completo de una orden de debhelper, o una subcadena. Buscará en primer lugar una orden en la secuencia que coincide totalmente con el nombre, para evitar cualquier ambigüedad. Si hay muchas coincidencias con la subcadena se utilizará la última en la secuencia.

VÉASE TAMBIÉN

debhelper(7)
Este programa es parte de debhelper.

AUTOR

Joey Hess <joeyh@debian.org>

TRADUCTOR

Traducci�n de Omar Campagne Polaino <debian-l10n-spanish@lists.debian.org>
2016-07-24 9.20150101+deb8u2