NOM¶
dpkg-architecture - Fixer et déterminer l'architecture pour la construction
d'un paquet
SYNOPSIS¶
dpkg-architecture [
option...] [
commande]
DESCRIPTION¶
dpkg-architecture aide à déterminer et à fixer l'architecture de
construction et l'architecture hôte pour la création d'un paquet.
L'architecture de construction est toujours déterminée par un appel
externe à
dpkg(1). Elle ne peut pas être spécifiée
en ligne de commande.
Vous pouvez spécifier une architecture hôte en utilisant une des
options
-a et
-t (ou les deux). Par défaut, la valeur est
déterminée par un appel à
gcc(1), ou en utilisant
l'architecture de construction si CC ou gcc ne sont pas disponibles. Utiliser
une seule des options
-a et
-t est suffisant, la valeur de l'une
est utilisée comme valeur par défaut de l'autre. Bien sûr, il
est préférable de n'en préciser qu'une seule, puisque
dpkg-architecture affichera un avertissement si le choix ne correspond
pas à la valeur par défaut.
COMMANDES¶
- -l
- Affiche les variables d'environnement, une par ligne, en
utilisant le format VARIABLE=valeur. C'est l'action par
défaut.
- -earchitecture-debian
- Vérifie l'égalité d'architectures. Par
défaut, architecture-debian est comparée à
l'architecture Debian actuelle, qui est celle de la machine hôte.
Cette action ne développe pas les architectures joker. La commande
quitte avec un code de retour de 0 si l'architecture correspond et de 1
dans le cas contraire.
- -iarchitecture-joker
- Vérifie l'égalité d'architectures en
développant architecture-joker et en comparant à
l'architecture Debian actuelle. La commande quitte avec un code de retour
de 0 si l'architecture correspond et de 1 dans le cas contraire.
- -qnom-de-variable
- Affiche la valeur d'une seule variable.
- -s
- Produit une commande, qui peut être utilisée pour
positionner les variables d'environnement avec
« eval ».
- -u
- Produit une commande similaire à celle produite par
-s, mais pour supprimer les variables de l'environnement.
- -c commande
- Exécute une commande dans un environnement
où toutes les variables sont positionnées aux valeurs
spécifiées.
- -L
- Affiche une liste des architectures valables.
- -?, --help
- Affiche un message d'aide puis quitte.
- --version
- Affiche le numéro de version puis quitte.
OPTIONS¶
- -aarchitecture-debian
- Fixe l'architecture Debian.
- -ttype-de-système-gnu
- Fixe le type de système GNU.
- -f
- Les valeurs positionnées par les variables
d'environnement ayant le même nom que celles utilisées par les
scripts sont prises en compte (c'est-à-dire utilisée par
dpkg-architecture), sauf si cette option est présente. Ceci
permet à un utilisateur de surcharger une valeur même lorsque
l'appel à dpkg-architecture est inclus dans un autre script
(par exemple dpkg-buildpackage(1)).
TERMINOLOGIE¶
- Machine de construction
- Machine sur laquelle le paquet est construit.
- Machine hôte
- Machine pour laquelle le paquet est construit.
- Architecture Debian
- Chaîne de caractères de l'architecture Debian,
qui spécifie l'emplacement dans l'archive FTP. Par exemple :
i386, sparc, hurd-i386.
- Architecture joker
- Une architecture joker est une architecture spéciale
qui correspond à toutes les architectures réelles qui en font
partie. Il est en général de la forme
<noyau>-<processeur>. Par exemple : linux-any, any-i386,
hurd-any.
- Type de système GNU
- Chaîne de caractères définissant
l'architecture et constituée de deux parties séparées par
un tiret : processeur et système. Par exemple :
i386-linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd.
VARIABLES D'ENVIRONNEMENT¶
Les variables suivantes sont positionnées par
dpkg-architecture :
- DEB_BUILD_ARCH
- Architecture Debian de la machine de construction.
- DEB_BUILD_ARCH_OS
- Nom du système Debian de la machine de
construction.
- DEB_BUILD_ARCH_CPU
- Nom de processeur Debian de la machine de
construction.
- DEB_BUILD_ARCH_BITS
- Taille de pointeur de la machine de construction (en
bits).
- DEB_BUILD_ARCH_ENDIAN
- « Endianness» de la machine de
construction (little ou big).
- DEB_BUILD_GNU_CPU
- Partie CPU de DEB_BUILD_GNU_TYPE.
- DEB_BUILD_GNU_SYSTEM
- Partie « système » de
DEB_BUILD_GNU_TYPE.
- DEB_BUILD_GNU_TYPE
- Type de système GNU de la machine de
construction.
- DEB_BUILD_MULTIARCH
- Le type de système clarifié GNU de la machine de
construction, utilisé pour les chemins du système de
fichiers.
- DEB_HOST_ARCH
- Architecture Debian de la machine hôte.
- DEB_HOST_ARCH_OS
- Nom du système Debian de la machine hôte.
- DEB_HOST_ARCH_CPU
- Nom du processeur Debian de la machine hôte.
- DEB_HOST_ARCH_BITS
- Taille de pointeur de la machine hôte (en bits).
- DEB_HOST_ARCH_ENDIAN
- « Endianess » de la machine hôte
(little ou big).
- DEB_HOST_GNU_CPU
- Partie « processeur » de
DEB_HOST_GNU_TYPE.
- DEB_HOST_GNU_SYSTEM
- Partie « système » de
DEB_HOST_GNU_TYPE.
- DEB_HOST_GNU_TYPE
- Type de système GNU de la machine hôte.
- DEB_HOST_MULTIARCH
- Le type de système clarifié GNU de la machine
hôte, utilisé pour les chemins du système de fichiers.
DEBIAN/RULES¶
Les variables d'environnement définies par
dpkg-architecture sont
fournies à
debian/rules comme variables pour make (consultez la
documentation de make). Cependant, vous ne devez pas compter là-dessus
puisque cela empêche les appels manuels à ce script. À la
place, vous devez toujours les initialiser en utilisant
dpkg-architecture avec l'option -q. Voici quelques exemples, qui
indiquent aussi comment améliorer la gestion des compilations
croisées de votre paquet :
Récupération du type de système GNU et passage à
./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)
Effectuer une action pour une architecture spécifique :
-
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq ($(DEB_HOST_ARCH),alpha)
[...]
endif
Ou, si vous n'avez besoin que de vérifier le type du processeur et du
système, utilisez les variables DEB_HOST_ARCH_CPU ou DEB_HOST_ARCH_OS.
Veuillez noter qu'il est également possible d'utiliser un fragment externe
de fichier Makefile pour définir correctement toutes les variables que
dpkg-architecture peut fournir :
-
include /usr/share/dpkg/architecture.mk
ifeq ($(DEB_HOST_ARCH),alpha)
[...]
endif
Dans tous les cas, il ne faut jamais utiliser
dpkg --print-architecture
pour récupérer les informations relatives à l'architecture
pendant la construction d'un paquet.
COMPATIBILITÉ ARRIÈRE¶
Le fragment de fichier Makefile /usr/share/dpkg/architecture.mk Makefile est
fourni par dpkg-dev depuis la version 1.16.1.
Les variables DEB_*_ARCH_BITS et DEB_*_ARCH_ENDIAN sont apparues avec la version
1.15.4 de dpkg-dev. Si elles sont utilisées dans
debian/rules, une
dépendance de construction sur dpkg-dev (>= 1.15.4) est
nécessaire.
Les variables DEB_HOST_ARCH_CPU et DEB_HOST_ARCH_OS sont apparues dans la
version 1.13.2 de dpkg-dev.
Les options
-e et
-i n'ont été ajoutées que
relativement récemment à
dpkg-architecture (depuis la version
1.13.13 de dpkg).
EXEMPLES¶
dpkg-buildpackage accepte l'option
-a, et la passe à
dpkg-architecture. Voici d'autres exemples :
- CC=i386-gnu-gcc dpkg-architecture -c debian/rules
build
- eval `dpkg-architecture -u`
Vérifie si une architecture est identique à l'architecture actuelle ou
à celle spécifiée :
- dpkg-architecture -elinux-alpha
- dpkg-architecture -amips -elinux-mips
Vérifie si l'architecture actuelle ou celle spécifiée avec -a
correspond à un système Linux :
- dpkg-architecture -ilinux-any
- dpkg-architecture -ai386 -ilinux-any
FICHIERS¶
Tous ces fichiers sont nécessaires afin que
dpkg-architecture puisse
fonctionner. Leurs emplacements peuvent être modifiés lors du
traitement via la variable d'environnement
DPKG_DATADIR.
- /usr/share/dpkg/cputable
- Table des noms de processeurs connus et liaison avec leur
nom GNU.
- /usr/share/dpkg/ostable
- Table des noms des systèmes d'exploitation connus et
liaison avec leurs noms GNU.
- /usr/share/dpkg/triplettable
- Correspondances entre les triplets de l'architecture Debian
et les noms des architectures Debian.
VOIR AUSSI¶
dpkg-buildpackage(1),
dpkg-cross(1).
TRADUCTION¶
Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006.
Nicolas François, 2006. Veuillez signaler toute erreur à
<debian-l10n-french@lists.debian.org>.