dpkg-architecture(1) | suite dpkg | dpkg-architecture(1) |
NOM¶
dpkg-architecture - Fixer et déterminer l'architecture pour la construction d'un paquetSYNOPSIS¶
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
- Set the target Debian architecture (since dpkg 1.17.14).
- -T, --target-type type-de-système-gnu
- Set the target GNU system type (since 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.
- -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
- The machine the compiler is building for. This is only needed when building a cross-toolchain, one that will be built on the build architecture, to be run on the host architecture, and to build code for the target architecture.
- 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.
- Debian architecture tuple
- A Debian architecture tuple is the fully qualified architecture with all its components spelled out. This differs with Debian architectures in that at least the cpu component does not embed the abi. The current tuple has the form abi-libc-os-cpu. Examples: base-gnu-linux-amd64, eabihf-musl-linux-arm.
- Debian architecture wildcard
- A Debian architecture wildcard is a special architecture string that will
match any real architecture being part of it. The general form is a Debian
architecture tuple with four or less elements, and with at least one of
them being any. Missing elements of the tuple are prefixed
implicitly as any, and thus the following pairs are equivalent:
any-any-any-any = any any-any-os-any = os-any any-libc-any-any = libc-any-any
Examples: linux-any, any-i386, hurd-any, eabi-any-any-arm, musl-any-any. - Type de système GNU
- An architecture specification string consisting of two parts separated by a hyphen: cpu and system. Examples: i586-linux-gnu, sparc-linux-gnu, i686-gnu, x86_64-netbsd.
- multiarch triplet
- The clarified GNU system type, used for filesystem paths. This triplet does not change even when the baseline ISA gets bumped, so that the resulting paths are stable over time. The only current difference with the GNU system type is that the CPU part for i386 based systems is always i386. Examples: i386-linux-gnu, x86_64-linux-gnu. Example paths: /lib/powerpc64le-linux-gnu/, /usr/lib/i386-kfreebsd-gnu/.
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_ABI
- The Debian abi name of the build machine (since dpkg 1.18.11).
- DEB_BUILD_ARCH_LIBC
- The Debian libc name of the build machine (since 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 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_ABI
- The Debian abi name of the host machine (since dpkg 1.18.11).
- DEB_HOST_ARCH_LIBC
- The Debian libc name of the host machine (since 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 « 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_ABI
- The Debian abi name of the target machine (since dpkg 1.18.11).
- DEB_TARGET_ARCH_LIBC
- The Debian libc name of the target machine (since 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 « 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¶
All these files have to be present for dpkg-architecture to work. Their location can be overridden at runtime with the environment variable DPKG_DATADIR. These tables contain a format Version pseudo-field on their first line to mark their format, so that parsers can check if they understand it, such as "# Version=1.0".- /usr/share/dpkg/cputable
- Table of known CPU names and mapping to their GNU name. Format version 1.0 (since dpkg 1.13.2).
- /usr/share/dpkg/ostable
- Table of known operating system names and mapping to their GNU name. Format version 2.0 (since dpkg 1.18.11).
- /usr/share/dpkg/tupletable
- Mapping between Debian architecture tuples and Debian architecture names. Format version 1.0 (since dpkg 1.18.11).
- /usr/share/dpkg/abitable
- Table of Debian architecture ABI attribute overrides. Format version 2.0 (since 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é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.
ENVIRONNEMENT¶
- DPKG_DATADIR
- If set, it will be used as the dpkg data directory, where the architecture tables are located (since dpkg 1.14.17). Defaults to «/usr/share/dpkg».
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>.2018-06-26 | 1.18.25 |