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
--host-arch et
--host-type (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
--host-arch
et
--host-type 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, --list
- Affiche les variables d'environnement, une par ligne, en utilisant le
format VARIABLE=valeur. C'est l'action par défaut.
- -e, --equal architecture
- Vérifie l'égalité d'architectures (depuis dpkg
1.13.13). Cela compare l'architecture Debian en cours (ou celle
spécifiée) à architecture afin de
vérifier leur égalité. Cette action ne gère
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.
- -i, --is architecture-joker
- Vérifie l'identité des architectures (depuis dpkg 1.13.13).
Cela compare l'architecture Debian en cours (ou celle
spécifiée) à architecture-joker (après
expansion de celle-ci) afin de vérifier leur correspondance. La
commande quitte avec un code de retour de 0 si l'architecture correspond
et de 1 dans le cas contraire.
- -q, --query nom-de-variable
- Affiche la valeur d'une seule variable.
- -s, --print-set
- Produit une commande, qui peut être utilisée pour
positionner les variables d'environnement avec
« eval ».
- -u, --print-unset
- Affiche une commande similaire à celle produite par
--print-unset, mais pour supprimer toutes les variables.
- -c, --command commande
- Exécute une commande dans un environnement où toutes
les variables sont positionnées aux valeurs
spécifiées.
- -L, --list-known
- Affiche une liste des architectures valables. Elle peut être
restreinte par une ou plusieurs des options correspondantes
--match-wildcard, --match-bits ou --match-endian
(depuis dpkg 1.17.14).
- -?, --help
- Affiche un message d'aide puis quitte.
- --version
- Affiche le numéro de version puis quitte.
OPTIONS¶
- -a, --host-arch architecture
- Définit l'architecture Debian en cours.
- -t, --host-type type-de-système-gnu
- Définit le type de système GNU en cours.
- -A, --target-arch architecture
- Définit l'architecture Debian cible. Cela est nécessaire
uniquement lors de la construction d'une chaîne d'outils de
compilation croisée qui sera construite sur l'architecture de
construction, pour être exécutée sur l'architecture
hôte, afin de construire du code pour l'architecture cible.
- -T, --target-type type-de-système-gnu
- Définit le type de système GNU de la cible.
- -W, --match-wildcard architecture-joker
- Restreindre les architectures listées par --list-known
à celles correspondant à l'architecture-joker (depuis dpkg
1.17.14).
- -B, --match-bits bits-de-l'architecture
- Restreindre les architectures listées par --list-known
à celles employant un CPU disposant du nombre de bits
indiqués (depuis dpkg 1.17.14). Soit 32, soit
64.
- -E, --match-endian boutisme-d'architecture
- Restreindre les architectures listées par --list-known
à celles correspondant au boutisme spécifié (depuis
dpkg 1.17.14). Soit little, soit big.
- -f, --force
- 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. Cela 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.
- Machine cible
- Machine pour laquelle le compilateur 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 (depuis dpkg
1.13.2).
- DEB_BUILD_ARCH_CPU
- Nom de processeur Debian de la machine de construction (depuis dpkg
1.13.2).
- DEB_BUILD_ARCH_BITS
- Taille de pointeur de la machine de construction (en bits, depuis dpkg
1.15.4).
- DEB_BUILD_ARCH_ENDIAN
- Boutisme de la machine de construction (petit ou gros, depuis dpkg
1.15.4).
- 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 en clair de système GNU de la machine de construction,
utilisé pour les chemins du système de fichiers (depuis dpkg
1.16.0).
- DEB_HOST_ARCH
- Architecture Debian de la machine hôte.
- DEB_HOST_ARCH_OS
- Nom du système Debian de la machine hôte (depuis dpkg
1.13.2).
- DEB_HOST_ARCH_CPU
- Nom du processeur Debian de la machine hôte (depuis dpkg
1.13.2).
- DEB_HOST_ARCH_BITS
- Taille de pointeur de la machine hôte (en bits, depuis dpkg
1.15.4).
- DEB_HOST_ARCH_ENDIAN
- Boutisme de la machine hôte (petit ou gros, depuis dpkg
1.15.4).
- 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 en clair de système GNU de la machine hôte,
utilisé pour les chemins du système de fichiers (depuis dpkg
1.16.0).
- DEB_TARGET_ARCH
- L'architecture Debian de la machine cible (depuis dpkg 1.17.14).
- DEB_TARGET_ARCH_OS
- Nom du système Debian de la machine cible (depuis dpkg
1.17.14).
- DEB_TARGET_ARCH_CPU
- Nom du processeur Debian de la machine cible (depuis dpkg 1.17.14).
- DEB_TARGET_ARCH_BITS
- Taille de pointeur de la machine cible (en bits, depuis dpkg
1.17.14).
- DEB_TARGET_ARCH_ENDIAN
- Boutisme de la machine cible (petit ou gros, depuis dpkg 1.17.14).
- DEB_TARGET_GNU_CPU
- Partie « processeur » de
DEB_TARGET_GNU_TYPE (depuis dpkg 1.17.14).
- DEB_TARGET_GNU_SYSTEM
- Partie « système » de
DEB_TARGET_GNU_TYPE (depuis dpkg 1.17.14).
- DEB_TARGET_GNU_TYPE
- Type du système GNU de la machine cible (depuis dpkg 1.17.14).
- DEB_TARGET_MULTIARCH
- Le type de système clarifié GNU de la machine cible,
utilisé pour les chemins du système de fichiers (depuis dpkg
1.17.14).
FICHIERS¶
Tables d'architectures¶
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.
Gestion de l'empaquetage¶
- /usr/share/dpkg/architecture.mk
- Un fragment de fichier Makefile qui définit correctement et exporte
toutes les variables que dpkg-architecture peut fournir (depuis
dpkg 1.16.1).
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 l'architecture en cours (ou celle spécifiée) est
identique à une architecture :
- dpkg-architecture -elinux-alpha
- dpkg-architecture -amips -elinux-mips
Vérifie si l'architecture en cours (ou celle spécifiée) est
un système Linux :
- dpkg-architecture -ilinux-any
- dpkg-architecture -ai386 -ilinux-any
Utilisation dans 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)
[...]
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
confflags += --build=$(DEB_HOST_GNU_TYPE)
else
confflags += --build=$(DEB_BUILD_GNU_TYPE) \
--host=$(DEB_HOST_GNU_TYPE)
endif
[...]
./configure $(confflags)
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.
NOTES¶
Tous les noms de commandes et d'options longs ne sont disponibles qu'à
partir de dpkg 1.17.17.
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>.