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.