.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" ======================================================================== .\" .IX Title "debhelper 7" .TH debhelper 7 "2012-09-10" "9.20120909" "Debhelper" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOMBRE" .IX Header "NOMBRE" debhelper \- El conjunto de herramientas debhelper .SH "SINOPSIS" .IX Header "SINOPSIS" \&\fBdh_\fR\fI*\fR [\fB\-v\fR] [\fB\-a\fR] [\fB\-i\fR] [\fB\-s\fR] [\fB\-\-no\-act\fR] [\fB\-p\fR\fIpaquete\fR] [\fB\-N\fR\fIpaquete\fR] [\fB\-P\fR\fIdirectorio-temporal\fR] .SH "DESCRIPCIÓN" .IX Header "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 \fIdebian/rules\fR 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. .PP Un fichero \fIdebian/rules\fR típico que utiliza debhelper invoca órdenes de debhelper en cadena, o utiliza \fIdh\fR\|(1) para automatizar el proceso. Puede encontrar ejemplos de ficheros «rules» que usan debhelper en \&\fI/usr/share/doc/debhelper/examples/\fR. .PP 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 \fBdh-make\fR, que contiene la orden dh_make, que automatiza parcialmente el proceso. Para una introducción más apropiada, el paquete \fBmaint-guide\fR 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 \fBmaint-guide-es\fR). .SH "ÓRDENES DE DEBHELPER" .IX Header "Ó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. .IP "\fIdh_auto_build\fR\|(1)" 4 .IX Item "dh_auto_build" Construye un paquete de forma automática .IP "\fIdh_auto_clean\fR\|(1)" 4 .IX Item "dh_auto_clean" Limpia automáticamente después de una construcción .IP "\fIdh_auto_configure\fR\|(1)" 4 .IX Item "dh_auto_configure" Configura un paquete automáticamente antes de la construcción .IP "\fIdh_auto_install\fR\|(1)" 4 .IX Item "dh_auto_install" Ejecuta «make install» o similar automáticamente .IP "\fIdh_auto_test\fR\|(1)" 4 .IX Item "dh_auto_test" Ejecuta automáticamente un conjunto de pruebas de un paquete .IP "\fIdh_bugfiles\fR\|(1)" 4 .IX Item "dh_bugfiles" Instala ficheros personalizados para el informe de fallos en los directorios de construcción del paquete .IP "\fIdh_builddeb\fR\|(1)" 4 .IX Item "dh_builddeb" Construye paquetes binarios de Debian .IP "\fIdh_clean\fR\|(1)" 4 .IX Item "dh_clean" Limpia los directorios de construcción de paquete .IP "\fIdh_compress\fR\|(1)" 4 .IX Item "dh_compress" Comprime ficheros y arregla enlaces simbólicos en los directorios de construcción del paquete .IP "\fIdh_fixperms\fR\|(1)" 4 .IX Item "dh_fixperms" Arregla los permisos de los ficheros en los directorios de construcción .IP "\fIdh_gconf\fR\|(1)" 4 .IX Item "dh_gconf" Instala ficheros de valores predeterminados de GConf y registra esquemas .IP "\fIdh_gencontrol\fR\|(1)" 4 .IX Item "dh_gencontrol" Genera e instala el fichero de control .IP "\fIdh_icons\fR\|(1)" 4 .IX Item "dh_icons" Actualiza el almacén de iconos de Freedesktop .IP "\fIdh_install\fR\|(1)" 4 .IX Item "dh_install" Instala ficheros en los directorios de construcción del paquete .IP "\fIdh_installcatalogs\fR\|(1)" 4 .IX Item "dh_installcatalogs" Instala y registra catálogos \s-1SGML\s0 .IP "\fIdh_installchangelogs\fR\|(1)" 4 .IX Item "dh_installchangelogs" Instala los ficheros de cambios en los directorios de construcción .IP "\fIdh_installcron\fR\|(1)" 4 .IX Item "dh_installcron" Instala scripts para cron en etc/cron.* .IP "\fIdh_installdeb\fR\|(1)" 4 .IX Item "dh_installdeb" Instala ficheros en el directorio \s-1DEBIAN\s0 .IP "\fIdh_installdebconf\fR\|(1)" 4 .IX Item "dh_installdebconf" Instala ficheros utilizados por debconf en los directorios de construcción .IP "\fIdh_installdirs\fR\|(1)" 4 .IX Item "dh_installdirs" Crea subdirectorios en los directorios de construcción del paquete .IP "\fIdh_installdocs\fR\|(1)" 4 .IX Item "dh_installdocs" Instala documentación en los directorios de construcción del paquete .IP "\fIdh_installemacsen\fR\|(1)" 4 .IX Item "dh_installemacsen" Registra un paquete de extensión de Emacs .IP "\fIdh_installexamples\fR\|(1)" 4 .IX Item "dh_installexamples" Instala ficheros de ejemplo en los directorios de construcción .IP "\fIdh_installifupdown\fR\|(1)" 4 .IX Item "dh_installifupdown" Instala «hooks» para if-up e if-down .IP "\fIdh_installinfo\fR\|(1)" 4 .IX Item "dh_installinfo" Instala ficheros info .IP "\fIdh_installinit\fR\|(1)" 4 .IX Item "dh_installinit" Instala tareas de upstart y/o scripts de init en los directorios de construcción del paquete .IP "\fIdh_installlogcheck\fR\|(1)" 4 .IX Item "dh_installlogcheck" Instala ficheros de reglas para logcheck en etc/logcheck/ .IP "\fIdh_installlogrotate\fR\|(1)" 4 .IX Item "dh_installlogrotate" Instala ficheros de configuración de logrotate .IP "\fIdh_installman\fR\|(1)" 4 .IX Item "dh_installman" Instala páginas de manual en los directorios de construcción del paquete .IP "\fIdh_installmenu\fR\|(1)" 4 .IX Item "dh_installmenu" Instala ficheros de menú de Debian en los directorios de construcción del paquete .IP "\fIdh_installmime\fR\|(1)" 4 .IX Item "dh_installmime" Instala ficheros mime en los directorios de construcción del paquete .IP "\fIdh_installmodules\fR\|(1)" 4 .IX Item "dh_installmodules" Registra módulos con modutils .IP "\fIdh_installpam\fR\|(1)" 4 .IX Item "dh_installpam" Instala ficheros de compatibilidad de pam .IP "\fIdh_installppp\fR\|(1)" 4 .IX Item "dh_installppp" Instala los ficheros ip-up e ip-down de ppp .IP "\fIdh_installinfo\fR\|(1)" 4 .IX Item "dh_installinfo" Instala ficheros de reglas de udev .IP "\fIdh_installwm\fR\|(1)" 4 .IX Item "dh_installwm" Registra un gestor de ventanas .IP "\fIdh_installxfonts\fR\|(1)" 4 .IX Item "dh_installxfonts" Registra tipos de letra para X .IP "\fIdh_link\fR\|(1)" 4 .IX Item "dh_link" Crea enlace simbólicos en los directorios de construcción del paquete .IP "\fIdh_lintian\fR\|(1)" 4 .IX Item "dh_lintian" Instala ficheros «override» de lintian en los directorios de construcción del paquete .IP "\fIdh_listpackages\fR\|(1)" 4 .IX Item "dh_listpackages" Lista los paquetes binarios sobre los que actuará debhelper .IP "\fIdh_makeshlibs\fR\|(1)" 4 .IX Item "dh_makeshlibs" Crea automáticamente el fichero «shlibs» e invoca dpkg-gensymbols .IP "\fIdh_md5sums\fR\|(1)" 4 .IX Item "dh_md5sums" Genera el fichero DEBIAN/md5sums .IP "\fIdh_movefiles\fR\|(1)" 4 .IX Item "dh_movefiles" Mueve ficheros desde debian/tmp a subpaquetes .IP "\fIdh_perl\fR\|(1)" 4 .IX Item "dh_perl" Calcula dependencias de Perl y limpia después de MakeMaker .IP "\fIdh_prep\fR\|(1)" 4 .IX Item "dh_prep" Realiza una limpieza para preparar la construcción de un paquete binario .IP "\fIdh_shlibdeps\fR\|(1)" 4 .IX Item "dh_shlibdeps" Calcula dependencias sobre bibliotecas compartidas .IP "\fIdh_strip\fR\|(1)" 4 .IX Item "dh_strip" Ejecuta strip sobre ejecutables, bibliotecas compartidas y algunas bibliotecas estáticas .IP "\fIdh_testdir\fR\|(1)" 4 .IX Item "dh_testdir" Comprueba el directorio antes de construir un paquete de Debian .IP "\fIdh_testroot\fR\|(1)" 4 .IX Item "dh_testroot" Compruebe que el paquete se construye como usuario «root» .IP "\fIdh_usrlocal\fR\|(1)" 4 .IX Item "dh_usrlocal" Migra directorios «usr/local» a scripts del desarrollador .SS "Órdenes obsoletas" .IX Subsection "Órdenes obsoletas" Existe un conjunto de órdenes de debhelper que han quedado obsoletas y que no se deberían utilizar. .IP "\fIdh_desktop\fR\|(1)" 4 .IX Item "dh_desktop" Orden obsoleta sin efecto .IP "\fIdh_installmanpages\fR\|(1)" 4 .IX Item "dh_installmanpages" Instalador de viejo estilo de páginas de manual (obsoleto) .IP "\fIdh_python\fR\|(1)" 4 .IX Item "dh_python" Calcula dependencias de Python y añade scripts de Python postinst y prerm (obsoleto) .IP "\fIdh_scrollkeeper\fR\|(1)" 4 .IX Item "dh_scrollkeeper" Orden obsoleta sin efecto .IP "\fIdh_suidregister\fR\|(1)" 4 .IX Item "dh_suidregister" Programa de registro suid (obsoleto) .IP "\fIdh_undocumented\fR\|(1)" 4 .IX Item "dh_undocumented" Programa de enlace simbólico a undocumented.7 (orden obsoleta sin efecto) .SS "Otras órdenes" .IX Subsection "Otras órdenes" Si el nombre de un programa empieza con \fBdh_\fR, 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. .SH "FICHEROS DE CONFIGURACIÓN DE DEBHELPER" .IX Header "FICHEROS DE CONFIGURACIÓN DE DEBHELPER" Muchas de las órdenes de debhelper hacen uso de ficheros en \fIdebian/\fR para controlar lo que hacen. Además de los ficheros comunes \fIdebian/changelog\fR y \&\fIdebian/control\fR, 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/\fIpaquete\fR.tal» (donde \fIpaquete\fR es reemplazado por el paquete sobre el que se está actuando). .PP Por ejemplo, \fBdh_installdocs\fR utiliza ficheros llamados \&\fIdebian/paquete.docs\fR 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. .PP Tenga en cuenta que si un paquete es el primero (o el único) paquete binario listado en \fIdebian/control\fR, debhelper utiliza \fIdebian/tal\fR si no existe un fichero \fIdebian/paquete.tal\fR. .PP En algunos casos especiales, puede querer tener diferentes versiones de estos ficheros para diferentes arquitecturas o sistemas operativos. Si los ficheros «debian/\fIpaquete\fR.tal.\fI\s-1ARCH\s0\fR» y «debian/\fIpaquete\fR.tal.\fI\s-1OS\s0\fR» existen, donde \fI\s-1ARCH\s0\fR y \fI\s-1OS\s0\fR son igual a las salidas de «\fBdpkg-architecture \-qDEB_HOST_ARCH\fR» / «\fBdpkg-architecture \&\-qDEB_HOST_ARCH_OS\fR», se utilizarán preferentemente a otros ficheros generales. .PP 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 (\fB?\fR, \fB*\fR y clases de carácter \fB[\fR\fI..\fR\fB]\fR) en estos ficheros. También puede incluir comentarios en estos ficheros; se ignoran las líneas que empiezan con \fB#\fR. .PP 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. .SH "OPCIONES COMPARTIDAS DE DEBHELPER" .IX Header "OPCIONES COMPARTIDAS DE DEBHELPER" Las siguientes opciones de línea de órdenes son aceptadas por todos los programas de debhelper. .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-v, --verbose" Modo explicativo: muestra todas las órdenes que modifican el directorio de construcción del paquete. .IP "\fB\-\-no\-act\fR" 4 .IX Item "--no-act" No hace nada realmente. Si se utiliza con «\-v», mostrará todo lo que hubiera hecho. .IP "\fB\-a\fR, \fB\-\-arch\fR" 4 .IX Item "-a, --arch" Actúa sobre todos los paquetes dependientes de la arquitectura que se deberían construir para la arquitectura de construcción. .IP "\fB\-i\fR, \fB\-\-indep\fR" 4 .IX Item "-i, --indep" Actúa en todos los paquetes independientes de la arquitectura. .IP "\fB\-p\fR\fIpaquete\fR, \fB\-\-package=\fR\fIpaquete\fR" 4 .IX Item "-ppaquete, --package=paquete" Actúa sobre el paquete nombrado \fIpaquete\fR. Esta opción se puede definir varias veces para hacer que debhelper opere sobre un conjunto dado de paquetes. .IP "\fB\-s\fR, \fB\-\-same\-arch\fR" 4 .IX Item "-s, --same-arch" Solía ser una versión más inteligente de la opción \fB\-a\fR, pero actualmente la opción \fB\-a\fR es igual de inteligente. .IP "\fB\-N\fR\fIpaquete\fR, \fB\-\-no\-package=\fR\fIpaquete\fR" 4 .IX Item "-Npaquete, --no-package=paquete" No actúa sobre un paquete especificado incluso si las opciones \fB\-a\fR, \fB\-i\fR, o \fB\-p\fR listan este paquete como uno sobre los que se debería actuar. .IP "\fB\-\-remaining\-packages\fR" 4 .IX Item "--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. .IP "\fB\-\-ignore=\fR\fIfichero\fR" 4 .IX Item "--ignore=fichero" Ignora el fichero dado. Se puede utilizar si \fIdebian/\fR 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 \fIdebian/compat\fR, \&\fIdebian/control\fR y \fIdebian/changelog\fR, aunque nunca debería existir una razón para ignorar esos ficheros. .Sp Por ejemplo, si la fuente original distribuye un fichero \fIdebian/init\fR que no desea que \fBdh_installinit\fR instale, use \fB\-\-ignore=debian/init\fR. .IP "\fB\-P\fR\fIdirectorio_temporal\fR, \fB\-\-tmpdir=\fR\fIdirectorio_temporal\fR" 4 .IX Item "-Pdirectorio_temporal, --tmpdir=directorio_temporal" Utiliza \fIdirectorio_temporal\fR como el directorio de construcción del paquete. Por omisión es «debian/\fIpaquete\fR». .IP "\fB\-\-mainpackage=\fR\fIpaquete\fR" 4 .IX Item "--mainpackage=paquete" Esta opción poco utilizada cambia el paquete que debhelper considera el «paquete principal», esto es, el primero listado en \fIdebian/control\fR, y sobre el cual se pueden utilizar los ficheros \fIdebian/tal\fR en vez de los usuales \fIdebian/package.tal\fR. .IP "\fB\-O=\fR\fIopción\fR|\fIfichero\fR" 4 .IX Item "-O=opción|fichero" \&\fIdh\fR\|(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á. .SH "OPCIONES COMUNES DE DEBHELPER" .IX Header "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. .IP "\fB\-n\fR" 4 .IX Item "-n" No modifica los scripts \fIpostinst\fR, \fIpostrm\fR, etc. .IP "\fB\-X\fR\fIelemento\fR, \fB\-\-exclude=\fR\fIelemento\fR" 4 .IX Item "-Xelemento, --exclude=elemento" No procesa un elemento. Esta opción se puede utilizar varias veces para excluir distintos elementos. .IP "\fB\-A\fR, \fB\-\-all\fR" 4 .IX Item "-A, --all" Hace que los ficheros o elementos especificados en la línea de órdenes tengan efecto en \s-1TODOS\s0 los paquetes sobre los que actúa, no sólo el primero. .SH "OPCIONES DEL SISTEMA DE CONSTRUCCIÓN" .IX Header "OPCIONES DEL SISTEMA DE CONSTRUCCIÓN" Las siguientes opciones de línea de órdenes son compatibles con todos los programas \fBdh_auto_\fR\fI*\fR 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 \&\fIdh\fR\|(1), que a su vez los introduce en todos los programas \&\fBdh_auto_\fR\fI*\fR. .IP "\fB\-S\fR\fIsistema\-de\-construcción\fR, \fB\-\-buildsystem=\fR\fIsistema\-de\-construcción\fR" 4 .IX Item "-Ssistema-de-construcción, --buildsystem=sistema-de-construcción" Fuerza el uso del \fIsistema\-de\-construcción\fR definido, en lugar de intentar seleccionar uno de forma automática que podría ser adecuado para el paquete. .IP "\fB\-D\fR\fIdirectorio\fR, \fB\-\-sourcedirectory=\fR\fIdirectorio\fR" 4 .IX Item "-Ddirectorio, --sourcedirectory=directorio" Supone que el árbol de código fuente original del paquete está en el \&\fIdirectorio\fR definido, en lugar del directorio de nivel superior del árbol del paquete fuente de Debian. .IP "\fB\-B\fR[\fIdirectorio\fR], \fB\-\-builddirectory=\fR[\fIdirectorio\fR]" 4 .IX Item "-B[directorio], --builddirectory=[directorio]" Activa la construcción fuera de las fuentes y utiliza el \fIdirectorio\fR especificado como directorio de construcción. Se seleccionará un directorio de construcción predeterminado si se omite el parámetro \fIdirectorio\fR. .Sp 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 \fB\-\-builddirectory\fR. .Sp 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. .IP "\fB\-\-parallel\fR" 4 .IX Item "--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 \fB\s-1DEB_BUILD_OPTIONS\s0\fR (\*(L"Normas de Debian, sección 4.9.1\*(R") en tiempo de construcción. También puede estar sujeto a un límite específico del sistema de construcción. .Sp Si no se define esta opción, debhelper no permitirá la construcción en paralelo de paquetes de forma predeterminada. .IP "\fB\-\-max\-parallel=\fR\fImáximo\fR" 4 .IX Item "--max-parallel=máximo" Esta opción implica \fB\-\-parallel\fR, 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. .IP "\fB\-\-list\fR, \fB\-l\fR" 4 .IX Item "--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 \&\fB\-\-buildsystem\fR. .SH "NIVELES DE COMPATIBILIDAD" .IX Header "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. .PP Para especificar a debhelper qué nivel de compatibilidad debe utilizar, escriba un número en \fIdebian/compat\fR. Por ejemplo, para activar el modo v9: .PP .Vb 1 \& % echo 9 > debian/compat .Ve .PP 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: .PP .Vb 1 \& Build\-Depends: debhelper (>= 9) .Ve .PP 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. .PP Los niveles de compatibilidad disponibles son: .IP "v1" 4 .IX Item "v1" Este es el nivel de compatibilidad original de debhelper, y por tanto es el nivel predeterminado. En este modo, debhelper utiliza \fIdebian/tmp\fR como el árbol de directorios del paquete, y «debian/\fIpaquete\fR» para el resto de paquetes listados en el fichero \fIcontrol\fR. .Sp Este modo está obsoleto. .IP "v2" 4 .IX Item "v2" En este modo, debhelper utilizará «debian/\fIpaquete\fR» de forma consistente como el árbol de directorios para cada paquete que se construya. .Sp Este modo está obsoleto. .IP "v3" 4 .IX Item "v3" Este modo funciona como v2, con los siguientes añadidos: .RS 4 .IP "\-" 8 Los ficheros de configuración de Debhelper aceptan comodines globales mediante \fB*\fR y \fB?\fR cuando sea apropiado. Para utilizar «*» y «?» como caracteres simplemente debe insertar como prefijo una barra invertida. .IP "\-" 8 \&\fBdh_makeshlibs\fR hace que los scripts \fIpostinst\fR y \fIpostrm\fR ejecuten ldconfig. .IP "\-" 8 \&\fBdh_installdeb\fR marca automáticamente todos los ficheros en \fIetc/\fR como conffiles. .RE .RS 4 .Sp Este modo está obsoleto. .RE .IP "v4" 4 .IX Item "v4" Los cambios desde el nivel v3 son: .RS 4 .IP "\-" 8 \&\fBdh_makeshlibs \-V\fR no incluirá la parte de Debian en el numero de versión generado en la línea de dependencias del fichero «shlibs». .IP "\-" 8 Se aconseja que use el nuevo \fB${misc:Depends}\fR en \fIdebian/control\fR para reemplazar el campo \fB${shlibs:Depends}\fR. .IP "\-" 8 \&\fBdh_fixperms\fR hará ejecutables todos los ficheros en los directorios \&\fIbin/\fR y \fIetc/init.d\fR. .IP "\-" 8 \&\fBdh_link\fR corregirá los enlaces existentes para ajustarse a las normas de Debian. .RE .RS 4 .Sp Este modo está obsoleto. .RE .IP "v5" 4 .IX Item "v5" Los cambios desde el nivel v4 son: .RS 4 .IP "\-" 8 Se ignoran los comentarios en los ficheros de configuración de debhelper. .IP "\-" 8 \&\fBdh_strip \-\-dbg\-package\fR 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. .IP "\-" 8 \&\fBdh_installdocs\fR omite la instalación de ficheros vacíos. .IP "\-" 8 \&\fBdh_install\fR devuelve un error si los comodines se expanden a un valor vacío. .RE .RS 4 .RE .IP "v6" 4 .IX Item "v6" Los cambios desde el nivel v5 son: .RS 4 .IP "\-" 8 Las órdenes que generan segmentos de scripts de desarrollador ordenarán estos segmentos en orden inverso para los scripts \fIprerm\fR y \fIpostrm\fR. .IP "\-" 8 \&\fBdh_installwm\fR instalará un enlace esclavo a la página de manual \&\fIx\-window\-manager.1.gz\fR en caso de encontrar la página de manual en \&\fIusr/share/man/man1\fR dentro del directorio de construcción del paquete. .IP "\-" 8 Anteriormente, \fBdh_builddeb\fR no eliminaba todo aquello que coincidiese con \&\fB\s-1DH_ALWAYS_EXCLUDE\s0\fR, si es que se definía con una lista de elementos a excluir, como por ejemplo \fB\s-1CVS:\s0.svn:.git\fR. Ahora sí lo hace. .IP "\-" 8 \&\fBdh_installman\fR 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. .RE .RS 4 .RE .IP "v7" 4 .IX Item "v7" Los cambios desde el nivel v6 son: .RS 4 .IP "\-" 8 \&\fBdh_install\fR buscará ficheros en \fIdebian/tmp\fR de forma predeterminada si no los encuentra en el directorio actual (o dónde indicó hacerlo mediante \&\fB\-\-sourcedir\fR). Esto permite la interoperabilidad entre \fBdh_install\fR y \&\fBdh_auto_install\fR, que instala en \fIdebian/tmp\fR, sin necesidad de parámetros especiales. .IP "\-" 8 \&\fBdh_clean\fR leerá \fIdebian/clean\fR y eliminará los ficheros ahí listados. .IP "\-" 8 \&\fBdh_clean\fR eliminará ficheros \fI*\-stamp\fR del nivel superior. .IP "\-" 8 \&\fBdh_installchangelogs\fR intentará averiguar el fichero de registro de cambios de la fuente original si no se especifica ninguno. .RE .RS 4 .RE .IP "v8" 4 .IX Item "v8" Los cambios desde el nivel v7 son: .RS 4 .IP "\-" 8 Las órdenes fallarán, en lugar de emitir un aviso, cuando se les introduzcan opciones desconocidas. .IP "\-" 8 \&\fBdh_makeshlibs\fR ejecutará \fBdpkg-gensymbols\fR sobre todas las bibliotecas compartidas para las que genera ficheros «shlibs». Por ello, puede utilizar \&\fB\-X\fR para excluir bibliotecas. Así mismo, se introducirán a \&\fBdpkg-gensymbols\fR bibliotecas en ubicaciones inusuales que antes no procesaba, un cambio de comportamiento que puede impedir la construcción de algunos paquetes. .IP "\-" 8 \&\fBdh\fR requiere que la secuencia a ejecutar se defina como el primer parámetro, y que las opciones aparezcan a continuación. Por ejemplo, use \&\fBdh $@ \-\-foo\fR, no \fBdh \-\-foo $@\fR. .IP "\-" 8 \&\fBdh_auto_\fR\fI*\fR prefiere utilizar el módulo de Perl \fBModule::Build\fR con preferencia a un fichero \fIMakefile.PL\fR. .RE .RS 4 .RE .IP "v9" 4 .IX Item "v9" Este es el modo de operación aconsejado. .Sp Los cambios desde el nivel v8 son: .RS 4 .IP "\-" 8 Compatibilidad multiarquitectura, \fBdh_auto_configure\fR introduce directorios multiarquitectura a autoconf en «\-\-libdir» y «\-\-libexecdir». .IP "\-" 8 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. .IP "\-" 8 \&\fBdh_strip\fR comprime ficheros de símbolos de depuración de fallos para reducir el tamaño de los paquetes \-dbg. .IP "\-" 8 \&\fBdh_auto_configure\fR no incluye el nombre de paquete fuente en «\-\-libexecdir» al utilizar autoconf. .IP "\-" 8 \&\fBdh\fR no activa «\-\-with=python\-support» de forma predeterminada. .IP "\-" 8 Todos los programas de debhelper \fBdh_auto_\fR\fI*\fR definen variables de entorno listados en \fBdpkg-buildflags\fR, a menos que ya estén definidas. .IP "\-" 8 \&\fBdh_auto_configure\fR introduce \fBdpkg-buildflags\fR \s-1CFLAGS\s0, \s-1CPPFLAGS\s0, y \&\s-1LDFLAGS\s0 a ficheros de Perl \fIMakefile.PL\fR y \fIBuild.PL\fR .IP "\-" 8 \&\fBdh_strip\fR ubica símbolos de depuración separados en una ubicación según su build-id. .IP "\-" 8 Se utilizan como configuración los ficheros de configuración ejecutables de debhelper y su salida. .RE .RS 4 .RE .IP "v10" 4 .IX Item "v10" Este nivel de compatibilidad aún está en desarrollo, utilícelo con precaución. .Sp Los cambios desde el nivel v9 son: .RS 4 .IP "\-" 8 Ninguno hasta ahora.. .RE .RS 4 .RE .SH "NOTAS" .IX Header "NOTAS" .SS "Compatibilidad con varios paquetes binarios" .IX Subsection "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 \&\fIdebian/rules\fR, y los paquetes independientes de la arquitectura en el objetivo binary-indep de \fIdebian/rules\fR. .PP Para facilitar esto, así como para dar mayor control sobre qué paquetes actúan los programas de debhelper, todos estos aceptan los parámetros \fB\-a\fR, \&\fB\-i\fR, \fB\-p\fR, y \fB\-s\fR. 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. .SS "Generación automática de los scripts de instalación de Debian" .IX Subsection "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 \fB#DEBHELPER#\fR a sus scripts, en el lugar donde el código se deba añadir. \fB#DEBHELPER#\fR será remplazado por cualquier código auto-generado cuando ejecute \fBdh_installdeb\fR. .PP Si el script no existe y debhelper necesita añadir algo en particular, creará el script por completo. .PP Todas las órdenes de debhelper que generan código automáticamente de esta manera se pueden deshabilitar con el parámetro «\-n» (ver arriba). .PP 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 \f(CW$1\fR, \f(CW$2\fR, etc se definen con la orden «set»): .PP .Vb 5 \& my $temp="set \-e\enset \-\- @ARGV\en" . << \*(AqEOF\*(Aq; \& #DEBHELPER# \& EOF \& system ($temp) / 256 == 0 \& or die "Problema con los scripts de debhelper: $!"; .Ve .SS "Generación automática de diversas dependencias." .IX Subsection "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 \fIdh_installdebconf\fR\|(1), el paquete generado dependerá de debconf. Si utiliza \fIdh_installxfonts\fR\|(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. .PP 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 \fB${misc:Depends}\fR. Si introduce esta variable en el fichero \fIdebian/control\fR, se expandirá a las dependencias que debhelper crea oportunas. .PP Esto es totalmente independiente del campo estándar \fB${shlibs:Depends}\fR generado por \fIdh_makeshlibs\fR\|(1), y del \fB${perl:Depends}\fR generada por \&\fIdh_perl\fR\|(1). Puede preferir no utilizar ninguno de estos si la expansión de debhelper de estas variables no es correcta. .SS "Directorios de construcción del paquete" .IX Subsection "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/\fIpaquete\fR». .PP Algunas veces, puede que desee utilizar otro directorio temporal. Esto se puede conseguir con la opción \fB\-P\fR. Por ejemplo, \fBdh_installdocs \&\-Pdebian/tmp\fR, utilizará el directorio \fBdebian/tmp\fR como directorio temporal. Tenga en cuenta que si utiliza la opción \fB\-P\fR, 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 \fB\-p\fR para especificar el paquete binario sobre el que debhelper actuará. .SS "udebs" .IX Subsection "udebs" Debhelper incluye la compatibilidad con paquetes udeb. Para crear un udeb con debhelper, añada \fBPackage-Type: udeb\fR al párrafo del paquete binario en \&\fIdebian/control\fR. Debhelper tratará de crear udebs que cumplan con las normas de debian-installer, haciendo que los ficheros de los paquetes terminen en \fI.udeb\fR, no instalando ninguna documentación en un udeb, y omitiendo los scripts \fIpreinst\fR, \fIpostrm\fR, \fIprerm\fR, scripts \fIconfig\fR, etc. .SH "ENTORNO" .IX Header "ENTORNO" .IP "\fB\s-1DH_VERBOSE\s0\fR" 4 .IX Item "DH_VERBOSE" Defina como \fB1\fR 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. .IP "\fB\s-1DH_COMPAT\s0\fR" 4 .IX Item "DH_COMPAT" Especifica temporalmente bajo qué nivel de compatibilidad debe actuar debhelper, ignorando cualquier valor en \fIdebian/compat\fR. .IP "\fB\s-1DH_NO_ACT\s0\fR" 4 .IX Item "DH_NO_ACT" Defina como \fB1\fR para habilitar el modo no-act. .IP "\fB\s-1DH_OPTIONS\s0\fR" 4 .IX Item "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. .Sp Al utilizar \fIdh\fR\|(1), puede aceptar opciones que se introducen a cada orden de debhelper, lo que habitualmente es mejor que utilizar «DH_OPTIONS». .IP "\fB\s-1DH_ALWAYS_EXCLUDE\s0\fR" 4 .IX Item "DH_ALWAYS_EXCLUDE" Si se define, añade su valor a la opción \fB\-X\fR de todas las órdenes que permiten dicha opción. Es más, \fBdh_builddeb\fR ejecutará \fBrm \-rf\fR con todo lo que coincida con el valor dentro del árbol de construcción del paquete. .Sp Puede ser útil si está compilando desde un árbol de \s-1CVS\s0, en cuyo caso estableciendo \fBDH_ALWAYS_EXCLUDE=CVS\fR evitará que los directorios \s-1CVS\s0 se introduzcan en el paquete construido. O, si su paquete original (imprudentemente) incluye directorios \s-1CVS\s0, puede ser útil exportar \&\fBDH_ALWAYS_EXCLUDE=CVS\fR en \fIdebian/rules\fR, para que esto tenga efecto en cualquier sitio donde se construya el paquete. .Sp Puede separar varias cosas a excluir mediante dos puntos, por ejemplo: \&\fBDH_ALWAYS_EXCLUDE=CVS:.svn\fR .SH "VÉASE TAMBIÉN" .IX Header "VÉASE TAMBIÉN" .IP "\fI/usr/share/doc/debhelper/examples/\fR" 4 .IX Item "/usr/share/doc/debhelper/examples/" Varios ficheros de ejemplo \fIdebian/rules\fR que utilizan debhelper. .IP "" 4 .IX Item "" Sitio web de Debhelper. .SH "AUTOR" .IX Header "AUTOR" Joey Hess .SH "TRADUCTOR" .IX Header "TRADUCTOR" Traducci�n de Rub�n Porras Campo Actualizaci�n de Omar Campagne Polaino