Provided by:
debhelper_6.0.4ubuntu1_all 
NOMBRE
debhelper - El conjunto de herramientas debhelper
SINOPSIS
dh_* [-v] [-a] [-i] [-s] [--no-act] [-ppaquete] [-Npaquete] [-Ptmpdir]
DESCRIPCIÓN
Debhelper ayuda a construir un paquete de Debian. La filosofía que se
esconde detrás de Debhelper es una colección de herramientas pequeñas,
simples y fáciles de entender que son usadas 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
cambia la política de Debian, los paquetes que necesiten cambios sólo
necesitan ser reconstruidos para que se ajusten a la nueva política.
Un fichero debian/rules típico que use debhelper hará varias llamadas
en cadena a órdenes de debhelper . Las órdenes de debhelper tienen
todas el prefijo "dh_". Ejemplos de ficheros rules que usan debhelper
se pueden encontrar en /usr/share/doc/debhelper/examples/
Para crear un nuevo paquete de Debian usando debhelper, simplemente
puede copiar uno de los ficheros rules de ejemplo y editarlo a mano, o
usar 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 un tutorial acerca de como hacer tu primer paquete
usando debhelper. (existe una versión traducida al castellano en el
paquete maint-guide-es)
ÓRDENES DE DEBHELPER
A continuación se muestra la lista completa de las órdenes de
debhelper, para más información consulte sus respectivas páginas del
manual.
dh_builddeb(1)
construye paquetes debian
dh_clean(1)
limpia los directorios de construcción de los paquetes
dh_compress(1)
comprime ficheros y arregla enlaces simbólicos en los directorios
de contrucción de los paquetes.
dh_desktop(1)
Registra ficheros .desktop
dh_fixperms(1)
arregla los permisos de los ficheros en los directorios de
construcción.
dh_gencontrol(1)
genera e instala el fichero de control
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 usados por debconf en los directorios de
construcción
dh_installdirs(1)
crea subdirectorios en los directorios de construcción
dh_installdocs(1)
instala documentación en los directorios de construcción
dh_installemacsen(1)
registra un paquete añadido para emacs
dh_installexamples(1)
instala ficheros de ejemplo en los directorios de construcción
dh_installinfo(1)
instala y registra ficheros info
dh_installinit(1)
instala scripts de init en los directorios de construcción
dh_installlogcheck(1)
instala ficheros de normas 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
dh_installmanpages(1)
instalador al viejo estilo de páginas del manual
dh_installmenu(1)
instala fichero del menú de Debian en los directorios de
construcción
dh_installmime(1)
instala ficheros mime en los directorios de construcción
dh_installpam(1)
instala ficheros de soporte para pam
dh_installppp(1)
instala los ficheros ip-up e ip-down de ppp
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 directorios de construcción de paquetes
dh_listpackages(1)
lista paquetes binarios sobre los que actuará debhelper
dh_makeshlibs(1)
automatically create shlibs file and call dpkg-gensymbols
dh_md5sums(1)
genera el fichero DEBIAN/md5sums
dh_movefiles(1)
mueve ficheros de debian/tmp en subpaquetes
dh_perl(1)
calcula dependencias de perl
dh_python(1)
calcula dependencias python y añade scripts python postinst y prerm
dh_scrollkeeper(1)
genera programas de registro de ScrollKeeper
dh_strip(1)
ejecuta strip sobre ejecutables, bibliotecas compartidas y algunas
bibliotecas estáticas
dh_suidregister(1)
programa obsoleto de registro suid
dh_testdir(1)
comprueba el directorio antes de construir el paquete debian
dh_testroot(1)
asegura que el paquete sea construido como superusuario
dh_testversion(1)
asegura que esté instalada la versión correcta de debhelper
dh_undocumented(1)
programa obsoleto de enlace simbólico a undocumented.7
dh_usrlocal(1)
migra directorios usr/local a programas de desarrollador
Si el nombre de un programa empieza con "dh_", y no está en la lista
anterior, 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 los 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 usan debhelper, se pueden usar 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á trabajando).
Por ejemplo, dh_installdocs usa el archivo llamado debian/paquete.docs
para listar los ficheros de documentación que instalará. Lea las
páginas del manual de cada orden para conocer más detalles acerca de
los nombres y formatos de los ficheros que usan. Generalmente, estos
ficheros listan los ficheros sobre los que se actúa, uno por línea.
Algunos programas de debhelper usan un par de ficheros y destinos o
algún formato un poco más complicado.
Dese cuenta que si un paquete es el primero (o el único) paquete
binario listado en debian/control, debhelper usará debian/tal si no
existe debian/paquete.tal.
In some rare cases, you may want to have different versions of these
files for different architectures. If files named
debian/package.foo.arch exist, where "arch" is the same as the output
of "dpkg-architecture -qDEB_HOST_ARCH", then they will be used in
preference to other, more general files.
En muchos casos, estos ficheros de configuración se usan para
especificar 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, puedes usar comodines del shell como (’?’ y ’*’)
en estos ficheros.
También puede poner comentarios en estos ficheros, simplementecomience
las líneas con el símbolo "#"
OPCIONES COMPARTIDAS DE DEBHELPER
La siguiente línea de órdenes es aceptada por todos los programas de
debhelper.
-v, --verbose
Modo explicativo: muestra todos las órdenes que modifican el
directorio de construcción del paquete.
--no-act
No hacer nada realmente. Si se usa con -v, mostrará todo lo que
hubiera hecho.
-a, --arch
Actuar en todos los paquetes dependientes de la arquitectura.
-i, --indep
Actuar en todos los paquetes independientes de la arquitectura.
-ppaquete, --package=paquete
Actúa sobre el paquete nombrado "paquete". Esta opción puede ser
especificada varias veces para hacer que debhelper opere sobre una
serie de paquetes.
-s, --same-arch
Esta es una opción refinada de la opción -a, que se usa en raras
circunstancias. Si el fichero de control tiene una línea para el
paquete como "Architecture: i386", entonces debhelper no actuará
sobre el paquete en otras arquitecturas. Así pues, esta opción hace
que la orden actúe en todos los paquetes "Architecture: any" así
como en cualquier paquete que tenga la arquitectura actual definida
explícitamente. Esto es distinto a la opción -a, que hace que la
orden actúe en todos los paquetes que son dependientes de la
arquitectura.
-Npaquete, --no-package=paquete
No actuar sobre un paquete especificado incluso si las opciones -a,
-i, o -p listan este paquete como uno sobre los que se debe actuar.
--ignore=file
Ignore the specified file. This can be used if debian/ contains a
debhelper config file that a debhelper command should not act on.
Note that debian/compat, debian/control, and debian/changelog can’t
be ignored, but then, there should never be a reason to ignore
those files.
For example, if upstream ships a debian/init that you don’t want
dh_installinit to install, use --ignore=debian/init
-Ptmpdir, --tmpdir=tmpdir
Usa "tmpdir" como directorio para construir el paquete. Por defecto
es debian/<paquete>.
--mainpackage=paquete
Esta opción poco usada cambia el paquete que debhelper considera el
"paquete principal", esto es, el primero listado en debian/control,
y sobre el cual se pueden usar los ficheros debian/tal en vez de
los usuales debian/package.tal.
OPCIONES COMUNES DE DEBHELPER
Las siguientes opciones son válidas para algunos programas de
debhelper. Mire la página del manual de cada programa para una
explicación detallada de lo que hace cada una.
-n No modificar los scripts postinst/postrm/etc.
-Xelemento, --exclude=elemento
No procesar un elemento. Esta opción puede ser usada varias veces,
para excluir distintos elementos.
-A, --all
Hace que los archivos 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.
NOTAS
Soporte para varios paquetes binarios
Si su paquete fuente genera más de un paquete binario, por defecto los
programas de debhelper actuarán sobre todos los paquetes binarios. Si
se diera el caso de que su paquete fuente genera un paquete dependiente
de la arquitectura, y otro independiente, este no es 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 defecto en
todos los paquetes listados en el fichero de control.
Consulte /usr/share/doc/debhelper/examples/rules.multi para ver un
ejemplo de como usar esto en un paquete que genera múltiples paquetes
binarios.
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, entonces necesita añadir "#DEBHELPER#" a tus scripts, en el
lugar donde el código deba de ser añadido. "#DEBHELPER#" será
remplazado por cualquier código auto-generado cuando ejecutes
dh_installdeb.
Todos los scripts que generan código automáticamente de esta manera se
pueden deshabilitar con el parámetro -n (ver arriba).
Todas las opciones de debhelper que generan código automáticamente de
estamanera se pueden deshabilitar con el parámetro -n (ver arriba).
Fijese que el código insertado sera código de shell, por eso no puede
usarlo directamente es un script perl. Si desea introducirlo en un
script perl, hagalo de la siguiente forma (Dese cuenta que en este
caso, se asegura que $1, $2, etc están establecidas 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 usas
dh_installdebconf(1), el paquete que genera dependerá de debconf. Si
usas 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 como debhelper haga las cosas, por eso
debhelper ofrece una manera de automatizarlo.
Todas las órdenes de este tipo, además de documentar qué dependencias
pueden ser necesarias en las páginas del manual, generarán
automáticamente una variable de substitución llamada ${misc:Depends}.
Si introduce esta variable en el archivo debian/control, será expandida
a las dependencias que debhelper crea oportunas.
Esto es totalmente independiente de la estándar ${shlibs:Depends}
generada por dh_makeshlibs(1), y de la ${perl:Depends} generada por
dh_perl(1). Puedes elegir no elegir ninguna de estas si la expansión de
debhelper de estas variables no son correctas.
Directorios de construcción del paquete
Por defecto, todos los programas de debhelper asumen que el directorio
temporal usado para ensamblar el árbol de ficheros en un paquete es
debian/<paquete>.
Algunas veces, puede que desee usar otro directorio temporal. Esto se
puede conseguir con la opción -P. Por ejemplo, "dh_installdocs
-Pdebian/tmp", usará el directorio debian/tmp como directorio temporal.
Dese cuenta que si usas la opción -P, los programas de debhelper sólo
pueden 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á.
Niveles de compatibilidad de debhelper
Cada cierto tiempo, debhelper necesita cambios que lo pueden hacer
incompatible con versiones anteriores, para de este modo mantenerse con
un buen diseño a medida que necesita cambios 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.
Tell debhelper what compatibility level to use by writing a number to
debian/compat. For example, to turn on V5 mode:
% echo 5 > debian/compat
Unless otherwise indicated, all debhelper documentation assumes that
you are using the most recent compatibility level, and in most cases
does not indicate if the behavior is different in an earlier
compatibility level, so if you are not using the most recent
compatibility level, you’re advised to read below for notes about what
is different in earlier compatibility levels.
Los niveles de compatibilidad disponibles son:
V1 Este es el nivel de compatibilidad original de debhelper, y por
tanto es el nivel por defecto. En este modo, debhelper usa
debian/tmp como el árbol de directorios y debian/paquete para el
resto de paquetes listados en el fichero de control. Se desaconseja
su uso.
Este modo está desaconsejado.
V2 En este modo, debhelper usará consistentemente debian/<paquete>
como el árbol de directorios para cada paquete que se construya.
Este modo está desaconsejado.
V3 Este modo funciona como el V2 con los siguientes añadidos:
- Los ficheros de configuración de Debhelper soportan
comodines mediante * y ? cuando sea apropiado. Para usar *
y ? simplemente como caracteres poner 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.
Este modo está desaconsejado.
V4 Changes from V3 are:
- 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 archivos en los
directorios bin/ y etc/init.d.
- dh_link corregirá los enlaces existentes para ajustarse a
la política de debian.
V5 Changes from V4 are:
- Se ignoran los comentarios en los ficheros de configuración
de debhelper.
- dh_strip --dbg-paquete 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 no instala ficheros vacíos.
- dh_install errors out if wildcards expand to nothing.
V6 This is the recommended mode of operation. It does everything V5
does, plus:
- Commands that generate maintainer script fragements will
order the fragements in reverse order for the prerm and
postrm scripts.
- dh_installwm will install a slave manpage link for
x-window-manager.1.gz, if it sees the man page in
usr/share/man/man1 in the package build directory.
- dh_builddeb did not previously delete everything matching
DH_ALWAYS_EXCLUDE, if it was set to a list of things to
exclude, such as "CVS:.svn:.git". Now it does.
- dh_installman allows overwriting existing man pages in the
package build directory. In previous compatability levels
it silently refuses to do this.
Enlaces a los directorios Doc
A veces es útil hacer que un paquete no tenga un directorio
/usr/share/doc/paquete, en vez de esto se hará un enlace colgando en el
paquete binario que apunte a otro directorio de documentación. La
política de Debian permite esto mientras mientras el paquete dependa
del paquete al que pertenece el directorio de documentación que está
usando. Para conseguir esto, lo único que hay que hacer es no decirle a
debhelper que cree ningún directorio con documentación y usar dh_link
para crear el enlace (o crear el enlace a mano), y debhelper hará lo
correcto: se dará cuenta de que es un enlace colgante y no tratará de
instalar un fichero de copyright o changelog.
udebs
Debhelper incluye soporte para udebs. Para crear un udeb con debhelper,
añada "XC-Package-Type: udeb" al párrafo del paquete binario en
debian/control, y una dependencia de construcción en debhelper (>=
4.2). Debhelper tratará de crear udebs que cumplan con las normas del
"debian-installer", haciendo que los ficheros de los paquetes terminen
en ".udeb", no instalando ninguna documentación en un udeb, pasando de
los scripts de preinst, postrm, prerm, y de configuración, etc.
Otras notas
En general si algún programa de debhelper necesita que exista un
directorio bajo debian/, lo creará. No me he preocupado por
documentarlo en todas las páginas del manual, pero por ejemplo,
dh_installdeb sabe hacer debian/<paquete>/DEBIAN/ antes de tratar de
poner los ficheros allí, dh_installmenu sabe que necesita
debian/<paquete>/usr/share/menu/ antes de instalar los archivos del
menú, etc.
Once your package uses debhelper to build, be sure to add debhelper to
your Build-Depends line in debian/control. You should build-depend on a
version of debhelper equal to (or greater than) the debhelper
compatibility level your package uses. So if your package used
compatibility level 6:
Build-Depends: debhelper (>= 6)
ENTORNO
DH_VERBOSE
Poner a uno para activar el modo explicativo. Debhelper mostrará
todas las órdenes usadas que modifiquen ficheros en el sistema en
el que se hace la construcción.
DH_COMPAT
Especifica temporalmente bajo que nivel de compatibilidad debe de
actuar debhelper, ignorando cualquier valor en debian/compat.
DH_NO_ACT
Poner a 1 para habilitar el modo no-act.
DH_OPTIONS
Todo lo que halla en esta variable se antepondrá a los argumentos
en la línea de órdenes de todas las órdenes de debhelper. Esto es
útil en algunas situaciones, por ejemplo, si necesita pasar la
opción -p a todas las órdenes de debhelper que va a utilizar. Una
buena manera de dar valor a DH_OPTIONS es usando "Target-specific
Variable Values" en su fichero debian/rules. Lea la documentación
de make para los detalles sobre como hacer esto.
DH_ALWAYS_EXCLUDE
Si está establecida, añade su valor a la opción -X de todas las
órdenes que soporten dicha opción. Es más, dh_builddeb hará un rm
-rf a todo lo que coincida con el valor en el árbol de
construcción.
Esto 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 ALWAYS_EXCLUDE=CVS en debian/rules, para que esto
tenga efecto en cualquier sitio donde se construya el paquete.
Si se tienen varias cosas para excluir, éstas pueden separarse
mediante dos puntos, p. ej.: DH_ALWAYS_EXCLUDE=CVS:.svn
VÉASE ADEMÁS
/usr/share/doc/debhelper/examples/
Varios ficheros de ejemplo debian/rules que usan debhelper.
<http://kitenet.net/~joey/code/debhelper/>
Web de Debhelper.
AUTOR
Joey Hess <joeyh@debian.org>
TRADUCTOR
Traducción de Rubén Porras Campo <debian-l10n-spanish@lists.debian.org>