NOMBRE¶
debhelper - El conjunto de herramientas debhelper
SINOPSIS¶
dh_* [
-v] [
-a] [
-i] [
-s]
[
--no-act] [
-ppaquete] [
-Npaquete]
[
-P directorio-temporal]
DESCRIPCIÓN¶
debhelper ayuda a construir un paquete de Debian. La filosofía que se
esconde detrás de debhelper es ofrecer una colección de herramientas
pequeñas, simples y fáciles de entender que se utilizan en
debian/rules para automatizar varios aspectos comunes a la hora de
construir un paquete. Esto hace que usted, el empaquetador, tenga menos
trabajo. Además, si cambian las directrices de Debian, los paquetes que
precisan cambios sólo necesitan ser reconstruidos para que se ajusten a
las nuevas directrices.
Un fichero
debian/rules típico que utiliza debhelper invoca
órdenes de debhelper en cadena, o utiliza
dh(1) para automatizar
el proceso. Puede encontrar ejemplos de ficheros «rules» que usan
debhelper en
/usr/share/doc/debhelper/examples/.
Para crear un nuevo paquete de Debian utilizando debhelper, simplemente puede
copiar uno de los ficheros «rules» de ejemplo y editarlo a mano, o
utilizar el paquete
dh-make, que contiene la orden dh_make, que
automatiza parcialmente el proceso. Para una introducción más
apropiada, el paquete
maint-guide contiene una guía que muestra
cómo hacer su primer paquete que utiliza debhelper (N. del T. existe una
versión traducida al castellano en el paquete
maint-guide-es).
ÓRDENES DE DEBHELPER¶
A continuación se muestra una lista de las órdenes de debhelper que
puede usar. Para más información consulte sus respectivas
páginas de manual.
- dh_auto_build(1)
- Construye un paquete de forma automática
- dh_auto_clean(1)
- Limpia automáticamente después de una
construcción
- dh_auto_configure(1)
- Configura un paquete automáticamente antes de la
construcción
- dh_auto_install(1)
- Ejecuta «make install» o similar
automáticamente
- dh_auto_test(1)
- Ejecuta automáticamente un conjunto de pruebas de un
paquete
- dh_bugfiles(1)
- Instala ficheros personalizados para el informe de fallos
en los directorios de construcción del paquete
- dh_builddeb(1)
- Construye paquetes binarios de Debian
- dh_clean(1)
- Limpia los directorios de construcción de paquete
- dh_compress(1)
- Comprime ficheros y arregla enlaces simbólicos en los
directorios de construcción del paquete
- dh_fixperms(1)
- Arregla los permisos de los ficheros en los directorios de
construcción
- dh_gconf(1)
- Instala ficheros de valores predeterminados de GConf y
registra esquemas
- dh_gencontrol(1)
- Genera e instala el fichero de control
- dh_icons(1)
- Actualiza el almacén de iconos de Freedesktop
- dh_install(1)
- Instala ficheros en los directorios de construcción
del paquete
- dh_installcatalogs(1)
- Instala y registra catálogos SGML
- dh_installchangelogs(1)
- Instala los ficheros de cambios en los directorios de
construcción
- dh_installcron(1)
- Instala scripts para cron en etc/cron.*
- dh_installdeb(1)
- Instala ficheros en el directorio DEBIAN
- dh_installdebconf(1)
- Instala ficheros utilizados por debconf en los directorios
de construcción
- dh_installdirs(1)
- Crea subdirectorios en los directorios de construcción
del paquete
- dh_installdocs(1)
- Instala documentación en los directorios de
construcción del paquete
- dh_installemacsen(1)
- Registra un paquete de extensión de Emacs
- dh_installexamples(1)
- Instala ficheros de ejemplo en los directorios de
construcción
- dh_installifupdown(1)
- Instala «hooks» para if-up e if-down
- dh_installinfo(1)
- Instala ficheros info
- dh_installinit(1)
- Instala tareas de upstart y/o scripts de init en los
directorios de construcción del paquete
- dh_installlogcheck(1)
- Instala ficheros de reglas para logcheck en
etc/logcheck/
- dh_installlogrotate(1)
- Instala ficheros de configuración de logrotate
- dh_installman(1)
- Instala páginas de manual en los directorios de
construcción del paquete
- dh_installmenu(1)
- Instala ficheros de menú de Debian en los directorios
de construcción del paquete
- dh_installmime(1)
- Instala ficheros mime en los directorios de
construcción del paquete
- dh_installmodules(1)
- Registra módulos con modutils
- dh_installpam(1)
- Instala ficheros de compatibilidad de pam
- dh_installppp(1)
- Instala los ficheros ip-up e ip-down de ppp
- dh_installinfo(1)
- Instala ficheros de reglas de udev
- dh_installwm(1)
- Registra un gestor de ventanas
- dh_installxfonts(1)
- Registra tipos de letra para X
- dh_link(1)
- Crea enlace simbólicos en los directorios de
construcción del paquete
- dh_lintian(1)
- Instala ficheros «override» de lintian en los
directorios de construcción del paquete
- dh_listpackages(1)
- Lista los paquetes binarios sobre los que actuará
debhelper
- dh_makeshlibs(1)
- Crea automáticamente el fichero «shlibs» e
invoca dpkg-gensymbols
- dh_md5sums(1)
- Genera el fichero DEBIAN/md5sums
- dh_movefiles(1)
- Mueve ficheros desde debian/tmp a subpaquetes
- dh_perl(1)
- Calcula dependencias de Perl y limpia después de
MakeMaker
- dh_prep(1)
- Realiza una limpieza para preparar la construcción de
un paquete binario
- dh_shlibdeps(1)
- Calcula dependencias sobre bibliotecas compartidas
- dh_strip(1)
- Ejecuta strip sobre ejecutables, bibliotecas compartidas y
algunas bibliotecas estáticas
- dh_testdir(1)
- Comprueba el directorio antes de construir un paquete de
Debian
- dh_testroot(1)
- Compruebe que el paquete se construye como usuario
«root»
- dh_usrlocal(1)
- Migra directorios «usr/local» a scripts del
desarrollador
Órdenes obsoletas¶
Existe un conjunto de órdenes de debhelper que han quedado obsoletas y que
no se deberían utilizar.
- dh_desktop(1)
- Orden obsoleta sin efecto
- dh_installmanpages(1)
- Instalador de viejo estilo de páginas de manual
(obsoleto)
- dh_python(1)
- Calcula dependencias de Python y añade scripts de
Python postinst y prerm (obsoleto)
- dh_scrollkeeper(1)
- Orden obsoleta sin efecto
- dh_suidregister(1)
- Programa de registro suid (obsoleto)
- dh_undocumented(1)
- Programa de enlace simbólico a undocumented.7 (orden
obsoleta sin efecto)
Otras órdenes¶
Si el nombre de un programa empieza con
dh_, y no está en las listas
anteriores, no es parte del paquete debhelper, pero aún así
debería funcionar como los programas descritos en está página.
FICHEROS DE CONFIGURACIÓN DE DEBHELPER¶
Muchas de las órdenes de debhelper hacen uso de ficheros en
debian/
para controlar lo que hacen. Además de los ficheros comunes
debian/changelog y
debian/control, que están en todos los
paquetes, no sólo aquellos que utilizan debhelper, se pueden utilizar
ficheros adicionales para configurar el comportamiento de una orden
específica de debhelper. Estos ficheros se suelen llamar «debian/
paquete.tal» (donde
paquete es reemplazado por el paquete
sobre el que se está actuando).
Por ejemplo,
dh_installdocs utiliza ficheros llamados
debian/paquete.docs para listar los ficheros de documentación que
instalará. Consulte las páginas de manual de cada orden para conocer
más detalles acerca de los nombres y formatos de los ficheros que
utilizan. Habitualmente, estos ficheros listan los ficheros sobre los que se
actúa, uno por línea. Algunos programas de debhelper utilizan
parejas de ficheros y destinos o algún formato un poco más
complicado.
Tenga en cuenta que si un paquete es el primero (o el único) paquete
binario listado en
debian/control, debhelper utiliza
debian/tal
si no existe un fichero
debian/paquete.tal.
En algunos casos especiales, puede querer tener diferentes versiones de estos
ficheros para diferentes arquitecturas o sistemas operativos. Si los ficheros
«debian/
paquete.tal.
ARCH» y
«debian/
paquete.tal.
OS» existen, donde
ARCH y
OS son igual a las salidas de «
dpkg-architecture
-qDEB_HOST_ARCH» / «
dpkg-architecture
-qDEB_HOST_ARCH_OS», se utilizarán preferentemente a otros
ficheros generales.
Generalmente, estos ficheros de configuración se utilizan para definir
varios tipos de ficheros. Documentación o ficheros de ejemplo a instalar,
ficheros a mover, y demás. Cuando sea apropiado, en casos como estos,
puede utilizar comodines del intérprete de órdenes como (
?,
* y clases de carácter
[..]) en estos
ficheros. También puede incluir comentarios en estos ficheros; se ignoran
las líneas que empiezan con
#.
La sintaxis de estos ficheros es intencionadamente sencilla para facilitar la
lectura, la comprensión y la modificación. Si prefiere potencia y
complejidad, puede dar al fichero permisos de ejecución, y crear un
programa que muestra un contenido adecuado para la situación dada. Si lo
hace, la salida no se proceso para expandir comodines o eliminar comentarios.
OPCIONES COMPARTIDAS DE DEBHELPER¶
Las siguientes opciones de línea de órdenes son aceptadas por todos
los programas de debhelper.
- -v, --verbose
- Modo explicativo: muestra todas las órdenes que
modifican el directorio de construcción del paquete.
- --no-act
- No hace nada realmente. Si se utiliza con «-v»,
mostrará todo lo que hubiera hecho.
- -a, --arch
- Actúa sobre todos los paquetes dependientes de la
arquitectura que se deberían construir para la arquitectura de
construcción.
- -i, --indep
- Actúa en todos los paquetes independientes de la
arquitectura.
- -ppaquete,
--package=paquete
- Actúa sobre el paquete nombrado paquete. Esta
opción se puede definir varias veces para hacer que debhelper opere
sobre un conjunto dado de paquetes.
- -s, --same-arch
- Solía ser una versión más inteligente de la
opción -a, pero actualmente la opción -a es igual
de inteligente.
- -Npaquete,
--no-package=paquete
- No actúa sobre un paquete especificado incluso si las
opciones -a, -i, o -p listan este paquete como uno
sobre los que se debería actuar.
- --remaining-packages
- No actúa sobre los paquetes sobre los que ya se
actuó anteriormente con esta orden de debhelper (esto es, si la orden
está presente en el registro de debhelper). Por ejemplo, si necesita
invocar la orden con opciones particulares para una pareja de paquetes
binarios, introduzca esta opción a la última invocación de
la orden para procesar el resto de paquetes con la configuración
predeterminada.
- --ignore=fichero
- Ignora el fichero dado. Se puede utilizar si debian/
contiene un fichero de configuración de debhelper sobre el que una
orden de debhelper no debería actuar. Tenga en cuenta que no puede
ignorar debian/compat, debian/control y
debian/changelog, aunque nunca debería existir una razón
para ignorar esos ficheros.
Por ejemplo, si la fuente original distribuye un fichero debian/init
que no desea que dh_installinit instale, use
--ignore=debian/init.
- -Pdirectorio_temporal,
--tmpdir=directorio_temporal
- Utiliza directorio_temporal como el directorio de
construcción del paquete. Por omisión es «debian/
paquete».
- --mainpackage=paquete
- Esta opción poco utilizada cambia el paquete que
debhelper considera el «paquete principal», esto es, el primero
listado en debian/control, y sobre el cual se pueden utilizar los
ficheros debian/tal en vez de los usuales
debian/package.tal.
- -O=opción|fichero
- dh(1) utiliza está orden al orden al introducir
opciones definidas por el usuario a todas las órdenes que ejecuta. Si
la orden acepta la opción definida o conjunto de opciones,
tendrá efecto. Si la orden no acepta la opción (o alguna
sección del conjunto de opciones), se ignorará.
OPCIONES COMUNES DE DEBHELPER¶
Las siguientes opciones son válidas para algunos programas de debhelper.
Consulte la página de manual de cada programa para una explicación
detallada de lo que hace cada una.
- -n
- No modifica los scripts postinst, postrm,
etc.
- -Xelemento,
--exclude=elemento
- No procesa un elemento. Esta opción se puede utilizar
varias veces para excluir distintos elementos.
- -A, --all
- Hace que los ficheros o elementos especificados en la
línea de órdenes tengan efecto en TODOS los paquetes sobre los
que actúa, no sólo el primero.
OPCIONES DEL SISTEMA DE CONSTRUCCIÓN¶
Las siguientes opciones de línea de órdenes son compatibles con todos
los programas
dh_auto_* de debhelper. Estos programas permiten
utilizar varios sistemas de construcción, y habitualmente realizan una
estimación de cuál utilizar, y cómo. Puede utilizar estas
opciones de línea de órdenes para anular el comportamiento
predeterminado. Habitualmente, se introducen a
dh(1), que a su vez los
introduce en todos los programas
dh_auto_*.
- -Ssistema-de-construcción,
--buildsystem= sistema-de-construcción
- Fuerza el uso del sistema-de-construcción
definido, en lugar de intentar seleccionar uno de forma automática
que podría ser adecuado para el paquete.
- -Ddirectorio,
--sourcedirectory=directorio
- Supone que el árbol de código fuente original del
paquete está en el directorio definido, en lugar del
directorio de nivel superior del árbol del paquete fuente de
Debian.
- -B[directorio],
--builddirectory=[directorio]
- Activa la construcción fuera de las fuentes y utiliza
el directorio especificado como directorio de construcción. Se
seleccionará un directorio de construcción predeterminado si se
omite el parámetro directorio.
Si no se define esta opción, la construcción tendrá lugar en
las fuentes de forma predeterminada a menos que el sistema de
construcción requiera o prefiera la construcción fuera del
árbol de fuentes. En ese caso, se utilizará el directorio de
construcción predeterminado incluso si no se define
--builddirectory.
Si el sistema de construcción prefiere realizar la construcción
fuera del árbol de fuentes, pero permite la construcción en las
fuentes, puede reactivar lo último introduciendo una ruta al
directorio de construcción igual a la ruta del directorio de
fuentes.
- --parallel
- Activa construcciones paralelas si el sistema de
construcción subyacente lo permite. El número de tareas
paralelas se controla mediante la variable de entorno
DEB_BUILD_OPTIONS ("Normas de Debian, sección
4.9.1") en tiempo de construcción. También puede estar
sujeto a un límite específico del sistema de construcción.
Si no se define esta opción, debhelper no permitirá la
construcción en paralelo de paquetes de forma predeterminada.
- --max-parallel=máximo
- Esta opción implica --parallel, y permite
limitar el número de tareas que se pueden utilizar en una
construcción en paralelo. Si se sabe que la construcción del
paquete sólo funciona con ciertos niveles de concurrencia, puede
definir esto con el nivel máximo conocido con el que funciona, o que
desea permitir.
- --list, -l
- Lista todos los sistemas construcción en el sistema
que debhelper acepta. La lista incluye sistemas de construcción de
terceras fuentes (marcadas como tal) y la predeterminada. También
muestra el sistema de construcción que se seleccionará
automáticamente, o cuál está definido mediante la
opción --buildsystem.
NIVELES DE COMPATIBILIDAD¶
Cada cierto tiempo, debhelper necesita cambios que lo pueden hacer incompatible
con versiones anteriores para así continuar con un buen y limpio
diseño a medida que las necesidades cambian y que su autor gana más
experiencia. Los niveles de compatibilidad de debhelper se crearon para
impedir que estos cambios estropeen algún paquete. Según el nivel de
compatibilidad que se especifique debhelper se comporta de diferentes maneras.
Para especificar a debhelper qué nivel de compatibilidad debe utilizar,
escriba un número en
debian/compat. Por ejemplo, para activar el
modo v9:
% echo 9 > debian/compat
El paquete también requiere como dependencia de construcción
(«build-depend») una versión de debhelper igual o mayor que el
nivel de compatibilidad de debhelper que utiliza el paquete. Por ejemplo, para
utilizar el nivel de compatibilidad 9, compruebe que
«debian/control» contiene lo siguiente:
Build-Depends: debhelper (>= 9)
A menos que se indique lo contrario, toda la documentación de debhelper
supone que utiliza el nivel de compatibilidad más reciente, y en la
mayoría de los casos no indica si el comportamiento de debhelper es
distinto bajo otro nivel de compatibilidad. Por ello, si no está
utilizando el nivel de compatibilidad más reciente, recomendamos que lea
a continuación las notas acerca de las diferencias con anteriores niveles
de compatibilidad.
Los niveles de compatibilidad disponibles son:
- v1
- Este es el nivel de compatibilidad original de debhelper, y
por tanto es el nivel predeterminado. En este modo, debhelper utiliza
debian/tmp como el árbol de directorios del paquete, y
«debian/ paquete» para el resto de paquetes listados en
el fichero control.
Este modo está obsoleto.
- v2
- En este modo, debhelper utilizará
«debian/paquete» de forma consistente como el árbol
de directorios para cada paquete que se construya.
Este modo está obsoleto.
- v3
- Este modo funciona como v2, con los siguientes
añadidos:
- -
- Los ficheros de configuración de Debhelper aceptan
comodines globales mediante * y ? cuando sea apropiado. Para
utilizar «*» y «?» como caracteres simplemente debe
insertar como prefijo una barra invertida.
- -
- dh_makeshlibs hace que los scripts postinst y
postrm ejecuten ldconfig.
- -
- dh_installdeb marca automáticamente todos los
ficheros en etc/ como conffiles.
- v4
- Los cambios desde el nivel v3 son:
- -
- dh_makeshlibs -V no incluirá la parte de Debian
en el numero de versión generado en la línea de dependencias del
fichero «shlibs».
- -
- Se aconseja que use el nuevo ${misc:Depends} en
debian/control para reemplazar el campo
${shlibs:Depends}.
- -
- dh_fixperms hará ejecutables todos los ficheros
en los directorios bin/ y etc/init.d.
- -
- dh_link corregirá los enlaces existentes para
ajustarse a las normas de Debian.
- v5
- Los cambios desde el nivel v4 son:
- -
- Se ignoran los comentarios en los ficheros de
configuración de debhelper.
- -
- dh_strip --dbg-package ahora especifica el nombre
del paquete en el que se colocan los símbolos de depuración, no
los paquetes desde los que obtener los símbolos.
- -
- dh_installdocs omite la instalación de ficheros
vacíos.
- -
- dh_install devuelve un error si los comodines se
expanden a un valor vacío.
- v6
- Los cambios desde el nivel v5 son:
- -
- Las órdenes que generan segmentos de scripts de
desarrollador ordenarán estos segmentos en orden inverso para los
scripts prerm y postrm.
- -
- dh_installwm instalará un enlace esclavo a la
página de manual x-window-manager.1.gz en caso de encontrar la
página de manual en usr/share/man/man1 dentro del directorio
de construcción del paquete.
- -
- Anteriormente, dh_builddeb no eliminaba todo aquello
que coincidiese con DH_ALWAYS_EXCLUDE, si es que se definía
con una lista de elementos a excluir, como por ejemplo
CVS:.svn:.git. Ahora sí lo hace.
- -
- dh_installman permite sobreescribir páginas de
manual existentes en el directorio de construcción del paquete. Bajo
los niveles de compatibilidad anteriores simplemente rechazaba hacerlo, de
forma silenciosa.
- v7
- Los cambios desde el nivel v6 son:
- -
- dh_install buscará ficheros en
debian/tmp de forma predeterminada si no los encuentra en el
directorio actual (o dónde indicó hacerlo mediante
--sourcedir). Esto permite la interoperabilidad entre
dh_install y dh_auto_install, que instala en
debian/tmp, sin necesidad de parámetros especiales.
- -
- dh_clean leerá debian/clean y
eliminará los ficheros ahí listados.
- -
- dh_clean eliminará ficheros *-stamp del
nivel superior.
- -
- dh_installchangelogs intentará averiguar el
fichero de registro de cambios de la fuente original si no se especifica
ninguno.
- v8
- Los cambios desde el nivel v7 son:
- -
- Las órdenes fallarán, en lugar de emitir un
aviso, cuando se les introduzcan opciones desconocidas.
- -
- dh_makeshlibs ejecutará dpkg-gensymbols
sobre todas las bibliotecas compartidas para las que genera ficheros
«shlibs». Por ello, puede utilizar -X para excluir
bibliotecas. Así mismo, se introducirán a dpkg-gensymbols
bibliotecas en ubicaciones inusuales que antes no procesaba, un cambio de
comportamiento que puede impedir la construcción de algunos
paquetes.
- -
- dh requiere que la secuencia a ejecutar se defina
como el primer parámetro, y que las opciones aparezcan a
continuación. Por ejemplo, use dh $@ --foo, no dh --foo
$@.
- -
- dh_auto_* prefiere utilizar el módulo de
Perl Module::Build con preferencia a un fichero
Makefile.PL.
- v9
- Este es el modo de operación aconsejado.
Los cambios desde el nivel v8 son:
- -
- Compatibilidad multiarquitectura, dh_auto_configure
introduce directorios multiarquitectura a autoconf en «--libdir»
y «--libexecdir».
- -
- dh es consciente de las dependencias habituales entre
objetivos en «debian/rules». Por ello, «dh binary»
ejecuta cualquier objetivo build, build-arch, build-indep e install que se
encuentre en el fichero «rules». No es necesario definir un
objetivo binario explícito con dependencias explícitas sobre
otros objetivos.
- -
- dh_strip comprime ficheros de símbolos de
depuración de fallos para reducir el tamaño de los paquetes
-dbg.
- -
- dh_auto_configure no incluye el nombre de paquete
fuente en «--libexecdir» al utilizar autoconf.
- -
- dh no activa «--with=python-support» de
forma predeterminada.
- -
- Todos los programas de debhelper dh_auto_*
definen variables de entorno listados en dpkg-buildflags, a menos
que ya estén definidas.
- -
- dh_auto_configure introduce dpkg-buildflags
CFLAGS, CPPFLAGS, y LDFLAGS a ficheros de Perl Makefile.PL y
Build.PL
- -
- dh_strip ubica símbolos de depuración
separados en una ubicación según su build-id.
- -
- Se utilizan como configuración los ficheros de
configuración ejecutables de debhelper y su salida.
- v10
- Este nivel de compatibilidad aún está en
desarrollo, utilícelo con precaución.
Los cambios desde el nivel v9 son:
NOTAS¶
Compatibilidad con varios paquetes binarios¶
Si su paquete fuente genera más de un paquete binario, los programas de
debhelper actuarán sobre todos los paquetes binarios de forma
predeterminada. Si se diera el caso de que su paquete fuente genera un paquete
dependiente de la arquitectura, y otro independiente, éste no sería
un comportamiento correcto porque necesitará generar los paquetes
dependientes de la arquitectura en el objetivo binary-arch de
debian/rules, y los paquetes independientes de la arquitectura en el
objetivo binary-indep de
debian/rules.
Para facilitar esto, así como para dar mayor control sobre qué
paquetes actúan los programas de debhelper, todos estos aceptan los
parámetros
-a,
-i,
-p, y
-s. Estos
parámetros son acumulativos. Si no se especifica ninguno, los programas
de debhelper actúan por omisión en todos los paquetes listados en el
fichero de control.
Generación automática de los scripts de
instalación de Debian¶
Algunas órdenes de debhelper generarán automáticamente parte de
los scripts de instalación de Debian. Si quiere que estas órdenes
generen automáticamente lo que esté incluido en sus scripts de
instalación de Debian, necesitará añadir
#DEBHELPER# a
sus scripts, en el lugar donde el código se deba añadir.
#DEBHELPER# será remplazado por cualquier código
auto-generado cuando ejecute
dh_installdeb.
Si el script no existe y debhelper necesita añadir algo en particular,
creará el script por completo.
Todas las órdenes de debhelper que generan código automáticamente
de esta manera se pueden deshabilitar con el parámetro «-n»
(ver arriba).
Observe que el código insertado sera código de consola, y por ello no
puede utilizarlo directamente en un script de Perl. Si desea introducirlo en
un script de Perl, hágalo de la siguiente forma (tenga en cuenta que en
este caso comprobé que $1, $2, etc se definen con la orden
«set»):
my $temp="set -e\nset -- @ARGV\n" . << 'EOF';
#DEBHELPER#
EOF
system ($temp) / 256 == 0
or die "Problema con los scripts de debhelper: $!";
Generación automática de diversas dependencias.¶
Es posible que algunas órdenes de debhelper hagan que los paquetes
generados dependan de otros paquetes. Por ejemplo, si utiliza
dh_installdebconf(1), el paquete generado dependerá de debconf. Si
utiliza
dh_installxfonts(1), el paquete dependerá de una
determinada versión de xutils. Llevar la cuenta de todas estas
dependencias puede ser tedioso porque dependen de cómo debhelper haga las
cosas, y por ello debhelper ofrece una manera de automatizarlo.
Todas las órdenes de este tipo, además de documentar qué
dependencias pueden ser necesarias en sus páginas de manual,
generarán automáticamente una variable de sustitución llamada
${misc:Depends}. Si introduce esta variable en el fichero
debian/control, se expandirá a las dependencias que debhelper crea
oportunas.
Esto es totalmente independiente del campo estándar
${shlibs:Depends} generado por
dh_makeshlibs(1), y del
${perl:Depends} generada por
dh_perl(1). Puede preferir no
utilizar ninguno de estos si la expansión de debhelper de estas variables
no es correcta.
Directorios de construcción del paquete¶
Por omisión, todos los programas de debhelper asumen que el directorio
temporal utilizado para ensamblar el árbol de ficheros en un paquete es
«debian/
paquete».
Algunas veces, puede que desee utilizar otro directorio temporal. Esto se puede
conseguir con la opción
-P. Por ejemplo,
dh_installdocs
-Pdebian/tmp, utilizará el directorio
debian/tmp como
directorio temporal. Tenga en cuenta que si utiliza la opción
-P,
los programas de debhelper sólo podrán actuar sobre un paquete a la
vez. Por eso, si tiene un paquete que construye muchos paquetes binarios,
tendrá que hacer uso de la opción
-p para especificar el
paquete binario sobre el que debhelper actuará.
udebs¶
Debhelper incluye la compatibilidad con paquetes udeb. Para crear un udeb con
debhelper, añada
Package-Type: udeb al párrafo del paquete
binario en
debian/control. Debhelper tratará de crear udebs que
cumplan con las normas de debian-installer, haciendo que los ficheros de los
paquetes terminen en
.udeb, no instalando ninguna documentación en
un udeb, y omitiendo los scripts
preinst,
postrm,
prerm,
scripts
config, etc.
ENTORNO¶
- DH_VERBOSE
- Defina como 1 para activar el modo explicativo.
Debhelper mostrará todas las órdenes utilizadas que modifiquen
ficheros en el sistema en el que se hace la construcción.
- DH_COMPAT
- Especifica temporalmente bajo qué nivel de
compatibilidad debe actuar debhelper, ignorando cualquier valor en
debian/compat.
- DH_NO_ACT
- Defina como 1 para habilitar el modo no-act.
- DH_OPTIONS
- Cualquier dato contenido en esta variable se añade a
los argumentos de línea de órdenes de todas las órdenes de
debhelper.
Al utilizar dh(1), puede aceptar opciones que se introducen a cada
orden de debhelper, lo que habitualmente es mejor que utilizar
«DH_OPTIONS».
- DH_ALWAYS_EXCLUDE
- Si se define, añade su valor a la opción
-X de todas las órdenes que permiten dicha opción. Es
más, dh_builddeb ejecutará rm -rf con todo lo que
coincida con el valor dentro del árbol de construcción del
paquete.
Puede ser útil si está compilando desde un árbol de CVS, en
cuyo caso estableciendo DH_ALWAYS_EXCLUDE=CVS evitará que los
directorios CVS se introduzcan en el paquete construido. O, si su paquete
original (imprudentemente) incluye directorios CVS, puede ser útil
exportar DH_ALWAYS_EXCLUDE=CVS en debian/rules, para que
esto tenga efecto en cualquier sitio donde se construya el paquete.
Puede separar varias cosas a excluir mediante dos puntos, por ejemplo:
DH_ALWAYS_EXCLUDE=CVS:.svn
VÉASE TAMBIÉN¶
- /usr/share/doc/debhelper/examples/
- Varios ficheros de ejemplo debian/rules que utilizan
debhelper.
- <http://kitenet.net/~joey/code/debhelper/>
- Sitio web de Debhelper.
AUTOR¶
Joey Hess <joeyh@debian.org>
TRADUCTOR¶
Traducci�n de Rub�n Porras Campo
<debian-l10n-spanish@lists.debian.org> Actualizaci�n de Omar
Campagne Polaino