dpkg-architecture(1)

NOMBRE
dpkg-architecture - Configurar y determinar la arquitectura para la construcción de paquetes

SINOPSIS
dpkg-architecture [opción...] [orden]

DESCRIPCIÓN
dpkg-architecture facilita determinar y configurar la arquitectura de construcción y de la máquina anfitrión para la construcción de un paquete.

La arquitectura de construcción siempre se determina con una ejecución externa a dpkg(1), y no se puede definir en la línea de órdenes.

Puede definir la arquitectura del anfitrión introduciendo una o ambas opciones -a y -t. El valor por omisión es una ejecución externa a gcc(1), o la misma que la arquitectura de construcción en caso de no disponer de CC o gcc. Es suficiente utilizar -a o -t, el valor del otro se definirá con un valor predefinido adecuado. De hecho, a veces es mejor definir sólo uno, ya que dpkg-architecture le avisará si su opción no encaja con la opción predefinida.

ÓRDENES

-l  Muestra las variables de entorno, una por línea, con el formato VARIABLE=valor. Esta es la acción predefinida.

-edebian-architecture
    Revisa si la arquitectura es la misma. Por omisión, debian-architecture se compara con la arquitectura del sistema Debian actual, el sistema anfitrión. Esta acción no expande los comodines de arquitectura. La orden finaliza con un estado de salida de cero si coinciden, y de 1 en caso contrario.

-icomodín-arquitectura
    Revisa la identidad de la arquitectura expandiendo comodin-arquitectura como un comodín de arquitectura, y comparándola con la arquitectura del sistema Debian actual. La orden finaliza con un estado de salida de cero si coincide, y de 1 en caso contrario.

-qnombre-variable
    Muestra el valor de una única variable.

-s  Muestra una orden «export». Se puede utilizar para definir las variables de entorno mediante eval.

-u  Muestra una orden similar a -s, pero para eliminar la definición («unset») de todas las variables.

-c orden
    Ejecuta una orden en un entorno cuyas variables ya están definidas con un valor predefinido.

-L  Muestra una lista de nombres de arquitectura válidos.

-?, --help
    Muestra el modo de uso y termina.

--version
    Muestra la versión y termina.

OPCIONES

-adebian-architecture
    Define la arquitectura de Debian.

-ttipo-sistema-gnu
    Define el tipo de sistema GNU.

-f  Los scripts respetan los valores de variables de entorno preexistentes que tienen el mismo nombre que los valores contenidos en el script (por ejemplo, usados por dpkg-architecture), a menos que se use esta marca de forzado. Permite al usuario sobreescribir un valor, aún cuando la ejecución a dpkg-architecture se encuentra en otro script (por ejemplo, dpkg-buildpackage(1)).

TÉRMINOS

máquina de construcción
    La máquina en la que se construye el paquete.

máquina anfitrión
    La máquina para la cual se construye el paquete.

Arquitectura de Debian
    La cadena de la arquitectura de Debian, que especifica el árbol binario en el archivo FTP. Ejemplos: i386, sparc, hurd-i386.

comodín de arquitectura
    Un comodín de arquitectura es una cadena especial de arquitectura que encaja con cualquier arquitectura real del que es parte. La forma habitual es <kernel>-<cpu>. Ejemplos: linux-any, any-i386, hurd-any.

tipo de sistema GNU
    Una cadena de definición de arquitectura que consiste de dos partes separadas por un guión: el procesador y el sistema. Ejemplos: i386-linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd.

VARIABLES
Las siguientes variables se definen mediante dpkg-architecture:

DEB_BUILD_ARCH
    La arquitectura de Debian de la máquina de construcción.

DEB_BUILD_ARCH_OS
    El nombre del sistema Debian de la máquina de construcción.

DEB_BUILD_ARCH_CPU
    El nombre de Debian del procesador de la máquina de construcción.

DEB_BUILD_ARCH_BITS
    El tamaño del puntero de la máquina de construcción, en bits.

DEB_BUILD_ARCH_ENDIAN
    El nivel de «endianización» de la máquina de construcción, «little» o «big».

DEB_BUILD_GNU_CPU
    La parte CPU de DEB_BUILD_GNU_TYPE.

DEB_BUILD_GNU_SYSTEM
    La parte de «System» de DEB_BUILD_GNU_TYPE.

DEB_BUILD_GNU_TYPE
    El tipo de sistema GNU de la máquina de construcción.

DEB_BUILD_MULTIARCH
    El tipo de sistema GNU clarificado de la máquina de construcción, utilizado para rutas del sistema de ficheros.

DEB_HOST_ARCH
    La arquitectura de Debian de la máquina anfitrión.

DEB_HOST_ARCH_OS
    El nombre de sistema Debian de la máquina anfitrión.

DEB_HOST_ARCH_CPU
    El nombre del procesador Debian de la máquina anfitrión.

DEB_HOST_ARCH_BITS
    El tamaño del puntero de la máquina anfitrión, en bits.

DEB_HOST_ARCH_ENDIAN
    El nivel de «endianización» de la máquina anfitrión, «little» o «big».

DEB_HOST_GNU_CPU
    La parte de CPU de DEB_HOST_GNU_TYPE.

DEB_HOST_GNU_SYSTEM
    La parte de «System» de DEB_HOST_GNU_TYPE.

DEB_HOST_GNU_TYPE
    El tipo de sistema GNU de la máquina anfitrión.

DEB_HOST_MULTIARCH
    El tipo de sistema GNU clarificado de la máquina anfitrión, utilizado para rutas del sistema de ficheros.

DEBIAN/RULES
Las variables de entorno definidas por dpkg-architecture se introducen a debian/rules como variables de «make» (consulte la documentación de make). Por otra parte, no debería depender de ellos, ya que esto rompe la ejecución manual del script. En lugar de ello, se deberían iniciar mediante dpkg-architecture con la opción «-q». Aquí hay algunos ejemplos, que muestran también como mejorar la compatibilidad de su paquete con la construcción para varias arquitecturas.

Obtención del tipo de sistema GNU e introducción a «./configure»:

    DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
    DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
    [...]
    configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)

Realizar algo para una arquitectura específica:

    DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
    ifeq ($(DEB_HOST_ARCH),alpha)
      [...]
    endif

o si sólo precisa revisar el tipo de sistema o CPU, use las variables «DEB_HOST_ARCH_OS» o «DEB_HOST_ARCH_CPU».

Tenga en cuenta que también puede utilizar un fragmento externo de un archivo «Makefile» para definir de forma adecuada las variables que dpkg-architecture puede proporcionar:

    include /usr/share/dpkg/architecture.mk
    ifeq ($(DEB_HOST_ARCH),alpha)
      [...]
    endif

Nunca utilice dpkg --print-architecture para obtener información de la arquitectura durante la construcción de un paquete.

COMPATIBILIDAD CON VERSIONES ANTERIORES
El fragmento de archivo «Makefile» «/usr/share/dpkg/architecture.mk» se proporciona a partir de la versión 1.16.1 de dpkg-dev.

Las variables «DEB_*_ARCH_BITS» y «DEB_*_ARCH_ENDIAN» se introdujeron a partir de la versión 1.15.4 de dpkg-dev. Su uso en debian/rules requiere una dependencia de construcción sobre dpkg-dev (>= 1.15.4).

Las variables «DEB_HOST_ARCH_CPU» y «DEB_HOST_ARCH_OS» se introdujeron a partir de la versión 1.13.2 de dpkg-dev.

Las opciones -e y -i aparecieron en recientes versiones de dpkg-architecture (a partir de la versión 1.13.13 de dpkg).

EJEMPLOS
dpkg-buildpackage acepta la opción -a y la introduce a dpkg-architecture. Otros ejemplos:

    CC=i386-gnu-gcc dpkg-architecture -c debian/rules build

    eval `dpkg-architecture -u`

Revisa si una arquitectura equivale a la arquitectura actual o dada:

    dpkg-architecture -elinux-alpha

    dpkg-architecture -amips -elinux-mips

Revisa si la arquitectura actual o introducida con «-a» es de un sistema Linux:

    dpkg-architecture -ilinux-any

    dpkg-architecture -ai386 -ilinux-any

FICHEROS
Todos los ficheros deben estar presentes para que dpkg-architecture funcione. Puede sobreescribir la ubicación en tiempo de ejecución mediante la variable de entorno DPKG_DATADIR.

/usr/share/dpkg/cputable
    Tabla de nombres de CPU conocidos y su correlación con su nombre GNU.

/usr/share/dpkg/ostable
    Tabla de sistemas operativos conocidos y su correlación con su nombre GNU.

/usr/share/dpkg/triplettable
    Correlación entre tuples de 3 de la arquitectura de Debian, y los nombres de arquitectura de Debian.

VÉASE TAMBIÉN
dpkg-buildpackage(1), dpkg-cross(1).

TRADUCTOR
Rudy Godoy <rudy@kernel-panik.org>, Rubén Porras <nahoo@inicia.es>, Bruno Barrera C. <bruno.barrera@igloo.cl>, Carlos Izquierdo <gheesh@ertis.net>, Esteban Manchado y NOK. Debian L10n Spanish <debian-l10n-spanish@lists.debian.org>.
Revisiones por Santiago Vila <sanvila@unex.es>, Javier Fernández-Sanguino, Rubén Porras, Luis Uribe y Omar Campagne.