Provided by: dpkg-dev_1.22.0ubuntu1.1_all
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 soit la variable DEB_BUILD_ARCH si elle est définie (et que --force n'a pas été spécifié) ou 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), autrement la variable DEB_HOST_ARCH est utilisée si elle est définie (et que --force n'a pas été spécifié). 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 Afficher les variables d'environnement, une par ligne, en utilisant le format VARIABLE=valeur. C'est l'action par défaut. -e, --equal architecture Vérifier 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érifier 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 Afficher la valeur d'une seule variable. -s, --print-set Produire une commande d'exportation, qui peut être utilisée pour positionner les variables d'environnement utilisant le shell POSIX ou « make eval », selon le format de sortie. -u, --print-unset Afficher une commande similaire à celle produite par --print-set, mais pour supprimer toutes les variables. -c, --command chaîne-de-commande Exécuter une chaîne-de-commande dans un environnement où toutes les variables sont positionnées aux valeurs spécifiées. If the command-string contains shell metacharacters, then it will be invoked through the system bourne shell. -L, --list-known Afficher 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 Afficher un message d'aide puis quitter. --version Afficher le numéro de version puis quitter.
OPTIONS
-a, --host-arch architecture Définir l'architecture Debian en cours. -t, --host-type type-de-système-gnu Définir le type de système GNU en cours. -A, --target-arch architecture Définir l'architecture Debian de la cible (depuis dpkg 1.17.14). -T, --target-type type-de-système-gnu Définir le type de système GNU de la cible (depuis dpkg 1.17.14). -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. --print-format format Configurer le format de sortie de --print-set et --print-unset (depuis dpkg 1.20.6), pour shell (par défaut) ou make. -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ées 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 La machine pour laquelle le compilateur construit ou pour laquelle l'émulateur exécutera le code. 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 (ou d'exécuter du code émulé) pour l'architecture cible. 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. N-uplet d'architecture Debian Un n-uplet d'architecture Debian est l'architecture pleinement qualifiée avec tous ses composants énoncés. C'est différent des architectures Debian en ce que le composant processeur n'intègre pas l'ABI. Le n-uplet actuel a la forme ABI-libc-os-processeur. Exemples : base-gnu-linux-amd64, eabihf-musl-linux-arm. Architecture Debian joker Une architecture Debian 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 d'un n-uplet d'architecture Debian avec quatre éléments ou moins dont au moins l'un d'eux est any. Les éléments manquants du n-uplet sont préfixés implicitement par any, et donc les paires suivantes sont équivalentes. any-any-any-any = any any-any-os-any = os-any any-libc-any-any = libc-any-any Exemples : linux-any, any-i386, hurd-any, eabi-any-any-arm, musl-any-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 : i586-linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd. n-uplet multiarchitecture Type en clair de système GNU, utilisé pour les chemins du système de fichiers. Ce n-uplet ne change pas même quand l'ISA de base est incrémentée, de sorte que les chemins résultants sont stables dans la durée. La seule différence actuelle avec le type du système GNU est que la partie processeur pour les systèmes basés sur l'i386 est toujours i386. Exemples : i386-linux-gnu, x86_64-linux-gnu. Exemple de chemins : /lib/powerpc64le-linux-gnu/, /usr/lib/i386-kfreebsd-gnu/.
VARIABLES D'ENVIRONNEMENT
Les variables suivantes sont lues à partir de l'environnement (à moins que --force n'ait été spécifié) et sont positionnées par dpkg-architecture (voir la section TERMS pour une description du schéma de nommage) : DEB_BUILD_ARCH Architecture Debian de la machine de construction. DEB_BUILD_ARCH_ABI Nom de l'ABI Debian de la machine de construction (depuis dpkg 1.18.11). DEB_BUILD_ARCH_LIBC Nom de la libc Debian de la machine de construction (depuis dpkg 1.18.11). 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 GNU de DEB_BUILD_GNU_TYPE. DEB_BUILD_GNU_SYSTEM Partie système GNU 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_ABI Nom de l'ABI Debian de la machine hôte (depuis dpkg 1.18.11). DEB_HOST_ARCH_LIBC Nom de la libc Debian de la machine hôte (depuis dpkg 1.18.11). 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 CPU GNU de DEB_HOST_GNU_TYPE. DEB_HOST_GNU_SYSTEM Partie système GNU 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_ABI Nom de l'ABI Debian de la machine cible (depuis dpkg 1.18.11). DEB_TARGET_ARCH_LIBC Nom de la libc Debian de la machine cible (depuis dpkg 1.18.11). 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 CPU GNU de DEB_TARGET_GNU_TYPE (depuis dpkg 1.17.14). DEB_TARGET_GNU_SYSTEM Partie système GNU 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 en clair du système 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 à l'aide de la variable d'environnement DPKG_DATADIR. Ces tables contiennent en première ligne un pseudo-champ de Version de format pour indiquer leur format de sorte que les analyseurs peuvent vérifier s'ils les comprennent, tel que « # Version=1.0 ». /usr/share/dpkg/table-processeur Table des noms de processeurs connus et liaison avec leur nom GNU. Version 1.0 de format (depuis dpkg 1.13.2). /usr/share/dpkg/table-système-exploitation Table des noms des systèmes d'exploitation connus et liaison avec leurs noms GNU. Version 2.0 de format (depuis dpkg 1.18.11). /usr/share/dpkg/table-n-uplet Correspondances entre les n-uplets de l'architecture Debian et les noms des architectures Debian. Format version 1.0 (depuis dpkg 1.18.11). /usr/share/dpkg/table-ABI Table des substituts d'attributs d'ABI d'architecture Debian. Format version 2.0 (depuis dpkg 1.18.11). 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érifier si l'architecture en cours (ou celle spécifiée) est identique à une architecture : dpkg-architecture -elinux-alpha dpkg-architecture -amips -elinux-mips Vérifier 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.
ENVIRONNEMENT
DPKG_DATADIR Si cette variable est définie, elle sera utilisée comme répertoire de données de dpkg où sont placées les tables d'architecture (depuis dpkg 1.14.17). Par défaut «/usr/share/dpkg». DPKG_COLORS Définit le mode de couleur (depuis dpkg 1.18.5). Les valeurs actuellement acceptées sont auto (par défaut), always et never. DPKG_NLS Si cette variable est définie, elle sera utilisée pour décider l'activation de la prise en charge des langues (NLS – Native Language Support), connu aussi comme la gestion de l'internationalisation (ou i18n) (depuis dpkg 1.19.0). Les valeurs permises sont : 0 et 1 (par défaut).
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).
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>.