Provided by: dpkg-dev_1.19.7ubuntu3.2_all 

NAAM
dpkg-architecture - de architectuur voor het bouwen van pakketten instellen en vaststellen
OVERZICHT
dpkg-architecture [optie...] [commando]
BESCHRIJVING
dpkg-architecture biedt een mogelijkheid om de bouw- en host-architectuur voor het bouwen van pakketten
vast te stellen en in te stellen.
De bouwarchitectuur wordt steeds bepaald door een externe aanroep van dpkg(1) en kan niet ingesteld
worden aan de commandoregel.
U kunt de host-architectuur specificeren door een van of allebei de opties --host-arch en --host-type op
te geven. Wat de standaard is, wordt vastgesteld door een externe aanroep van gcc(1) of, als zowel CC als
gcc onbeschikbaar zijn, gelijkgesteld aan de bouwarchitectuur. Een van beide, --host-arch of --host-type,
volstaat. De andere waarde zal op een gebruikelijke standaardwaarde ingesteld worden. Het is inderdaad
dikwijls beter om slechts één waarde op te geven, vermits dpkg-architecture een waarschuwing zal geven
als de keuze die u maakt niet met de standaardwaarde overeenkomt.
COMMANDO'S
-l, --list
Geef de omgevingsvariabelen, per regel één, weer volgens de indeling VARIABELE=waarde. Dit is de
standaardactie.
-e, --equal architectuur
Ga na of de architecturen gelijk zijn (sinds dpkg 1.13.13). Het vergelijkt de huidige of opgegeven
Debian host-architectuur met architectuur om na te gaan of ze gelijk zijn. Deze actie zal geen
architectuurjokertekens verwerken. Het commando sluit af met een afsluitstatus 0 bij gelijkheid en
1 bij ongelijkheid.
-i, --is architectuurjokerteken
Ga na of de architecturen gelijk zijn (sinds dpkg 1.13.13). Het vergelijkt de huidige of opgegeven
Debian host-architectuur met architectuurjokerteken, nadat dit als een architectuurjokerteken
verwerkt werd, om na te gaan of beide gelijk zijn. Het commando sluit af met een afsluitstatus 0
bij gelijkheid en 1 bij ongelijkheid.
-q, --query variabelenaam
Toon de waarde van één enkele variabele.
-s, --print-set
Toon een export-commando. Dit kan gebruikt worden om de omgevingsvariabelen met behulp van eval in
te stellen.
-u, --print-unset
Toon een commando dat vergelijkbaar is met --print-unset, maar om alle variabelen leeg te maken.
-c, --command commando-tekenreeks
Voer een commando-tekenreeks uit in een omgeving waarin alle variabelen ingesteld zijn op de
vastgelegde waarde.
-L, --list-known
Toon een lijst van geldige architectuurbenamingen. Kan eventueel ingeperkt worden met een of meer
van de vergelijkingsopties --match-wildcard, --match-bits of --match-endian (sinds dpkg 1.17.14).
-?, --help
Toon info over het gebruik en sluit af.
--version
Toon de versie en sluit af.
OPTIES
-a, --host-arch architectuur
Stel de Debian-architectuur in voor de host.
-t, --host-type gnu-systeemtype
Stel het GNU-systeemtype in voor de host.
-A, --target-arch architectuur
Stel de Debian-architectuur in voor het doel (sinds dpkg 1.17.14).
-T, --target-type gnu-systeemtype
Stel het GNU-systeemtype in voor het doel (sinds dpkg 1.17.14).
-W, --match-wildcard architectuurjokerteken
Beperk de architecturen die door --list-known weergegeven worden tot die welke beantwoorden aan
het opgegeven architectuurjokerteken (sinds dpkg 1.17.14).
-B, --match-bits architectuur-bits
Beperk de architecturen die door --list-known weergegeven worden tot die met de opgegeven CPU-bits
(sinds dpkg 1.17.14). Ofwel 32 ofwel 64.
-E, --match-endian architectuur-bytevolgorde
Beperk de architecturen die door --list-known weergegeven worden tot die met de opgegeven
bytevolgorde (endianness) (sinds dpkg 1.17.14). Ofwel little ofwel big.
-f, --force
Waarden die door bestaande omgevingsvariabelen ingesteld zijn en die dezelfde naam hebben als die
welke door de scripts gebruikt worden, worden gehonoreerd (d.w.z. gebruikt door
dpkg-architecture), behalve wanneer deze forceer-vlag gebruikt wordt. Dit laat de gebruiker toe om
een waarde te vervangen, zelfs als het aanroepen van dpkg-architecture ingebed zit in een ander
script (bijvoorbeeld dpkg-buildpackage(1)).
TERMINOLOGIE
bouwmachine
De machine waarop het pakket gebouwd wordt.
hostmachine
De machine waarvoor het pakket gebouwd wordt.
doelmachine
De machine waarvoor de compiler bouwt. Dit is enkel nodig bij het bouwen van een
kruisgereedschapskist (cross-toolchain), een gereedschapskist die gebouwd zal worden op de
bouwarchitectuur om uitgevoerd te worden op de hostarchitectuur en code moet bouwen voor de
doelarchitectuur.
Debian-architectuur
De tekenreeks waarmee de Debian-architectuur aangeduid wordt en die ook de boomstructuur met de
binaire pakketten in het FTP-archief specificeert. Voorbeelden: i386, sparc, hurd-i386.
Debian-architectuurtupel
Een Debian-architectuurtupel is de volledige unieke architectuurnaam met de expliciete vermelding
van alle componenten. Dit verschilt minstens daarin van een Debian architectuur dat de component cpu
niet de abi impliceert. Het huidige tupel heeft als vorm abi-libc-os-cpu. Voorbeelden:
base-gnu-linux-amd64, eabihf-musl-linux-arm.
Debian-architectuurjokerteken
Een Debian-architectuurjokerteken is een speciale architectuurtekenreeks die een overeenkomst
oplevert met elke echte architectuur die er onder hoort. De algemene vorm is een
Debian-architectuurtupel met vier of minder elementen en waarvan er minstens een any is. Ontbrekende
elementen van de tupel worden impliciet als any voorgevoegd, en dus zijn de volgende koppels
equivalent:
any-any-any-any = any
any-any-os-any = os-any
any-libc-any-any = libc-any-any
Voorbeelden: linux-any, any-i386, hurd-any, eabi-any-any-arm, musl-any-any.
GNU-systeemtype
Een tekenreeks die een architectuurspecificatie inhoudt en bestaat uit twee delen met daartussen een
koppelteken: cpu en systeem. Voorbeelden: i586-linux-gnu, sparc-linux-gnu, i686-gnu, x86_64-netbsd.
multiarch-triplet
Het uitgezuiverde GNU-systeemtype dat voor bestandssysteempaden gebruikt wordt. Dit triplet verandert
zelfs niet wanneer het referentie-ISA verhoogd wordt, waardoor de resulterende paden stabiel blijven
door de tijd. Het enige verschil met het GNU-systeemtype is momenteel dat voor op i386 gebaseerde
systemen het CPU-gedeelte steeds i386 is. Voorbeelden: i386-linux-gnu, x86_64-linux-gnu. Voorbeelden
van paden: /lib/powerpc64le-linux-gnu/, /usr/lib/i386-kfreebsd-gnu/.
VARIABELEN
De volgende variabelen worden door dpkg-architecture ingesteld (zie de sectie TERMS voor een beschrijving
van het naamgevingsschema):
DEB_BUILD_ARCH
De Debian architectuur van de bouwmachine.
DEB_BUILD_ARCH_ABI
De Debian abi-naam van de bouwmachine (sinds dpkg 1.18.11).
DEB_BUILD_ARCH_LIBC
De Debian libc-naam van de bouwmachine (sinds dpkg 1.18.11).
DEB_BUILD_ARCH_OS
De Debian systeemnaam van de bouwmachine (sinds dpkg 1.13.2).
DEB_BUILD_ARCH_CPU
De Debian CPU-naam van de bouwmachine (sinds dpkg 1.13.2).
DEB_BUILD_ARCH_BITS
De pointergrootte van de bouwmachine (in bits; sinds dpkg 1.15.4).
DEB_BUILD_ARCH_ENDIAN
De bytevolgorde (endianness) van de bouwmachine (little / big; sinds dpkg 1.15.4).
DEB_BUILD_GNU_CPU
Het CPU-gedeelte van DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_SYSTEM
Het systeemgedeelte van DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_TYPE
Het GNU-systeemtype van de bouwmachine.
DEB_BUILD_MULTIARCH
Het uitgezuiverde GNU-systeemtype van de bouwmachine, dat gebruikt wordt voor bestandssysteempaden
(sinds dpkg 1.16.0).
DEB_HOST_ARCH
De Debian architectuur van de hostmachine.
DEB_HOST_ARCH_ABI
De Debian abi-naam van de hostmachine (sinds dpkg 1.18.11).
DEB_HOST_ARCH_LIBC
De Debian libc-naam van de hostmachine (sinds dpkg 1.18.11).
DEB_HOST_ARCH_OS
De Debian systeemnaam van de hostmachine (sinds dpkg 1.13.2).
DEB_HOST_ARCH_CPU
De Debian CPU-naam van de hostmachine (sinds dpkg 1.13.2).
DEB_HOST_ARCH_BITS
De pointergrootte van de hostmachine (in bits; sinds dpkg 1.15.4).
DEB_HOST_ARCH_ENDIAN
De bytevolgorde (endianness) van de hostmachine (little / big; sinds dpkg 1.15.4).
DEB_HOST_GNU_CPU
Het CPU-gedeelte van DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_SYSTEM
The systeemgedeelte van DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_TYPE
Het GNU-systeemtype van de hostmachine.
DEB_HOST_MULTIARCH
Het uitgezuiverde GNU-systeemtype van de hostmachine, dat gebruikt wordt voor bestandssysteem-paden
(sinds dpkg 1.16.0).
DEB_TARGET_ARCH
De Debian architectuur van de doelmachine (sinds dpkg 1.17.14).
DEB_TARGET_ARCH_ABI
De Debian abi-naam van de doelmachine (sinds dpkg 1.18.11).
DEB_TARGET_ARCH_LIBC
De Debian libc-naam van de doelmachine (sinds dpkg 1.18.11).
DEB_TARGET_ARCH_OS
De Debian systeemnaam van de doelmachine (sinds dpkg 1.17.14).
DEB_TARGET_ARCH_CPU
De Debian CPU-naam van de doelmachine (sinds dpkg 1.17.14).
DEB_TARGET_ARCH_BITS
De pointergrootte van de doelmachine (in bits; sinds dpkg 1.17.14).
DEB_TARGET_ARCH_ENDIAN
De bytevolgorde (endianness) van de doelmachine (little / big; sinds dpkg 1.17.14).
DEB_TARGET_GNU_CPU
Het CPU-gedeelte van DEB_TARGET_GNU_TYPE (sinds dpkg 1.17.14).
DEB_TARGET_GNU_SYSTEM
Het systeemgedeelte van DEB_TARGET_GNU_TYPE (sinds dpkg 1.17.14).
DEB_TARGET_GNU_TYPE
Het GNU-systeemtype van de doelmachine (sinds dpkg 1.17.14).
DEB_TARGET_MULTIARCH
Het uitgezuiverde GNU-systeemtype van de doelmachine, dat gebruikt wordt voor bestandssysteempaden
(sinds dpkg 1.17.14).
BESTANDEN
Architectuurtabellen
Al deze bestanden moeten aanwezig zijn, wil dpkg-architecture kunnen werken. Hun locatie kan veranderd
worden bij de programmauitvoering met de omgevingsvariabele DPKG_DATADIR. Deze tabellen bevatten op hun
eerste regel een pseudo-veld format Version om hun indeling aan te geven, zodat ontleders kunnen nagaan
of zij ermee kunnen omgaan, zoals "# Version=1.0".
/usr/share/dpkg/cputable
Tabel met gekende CPU-namen en hun omzetting naar een GNU-naam. Indeling versie 1.0 (sinds dpkg
1.13.2).
/usr/share/dpkg/ostable
Tabel van gekende namen van besturingssystemen en hun omzetting naar een GNU-naam. Indeling versie
2.0 (sinds dpkg 1.18.11).
/usr/share/dpkg/tupletable
Omzetting tussen Debian architectuurtupels en Debian architectuurnamen. Indeling versie 1.0 (sinds
dpkg 1.18.11).
/usr/share/dpkg/abitable
Tabel van Debian architectuur-ABI-attribuutvervangingen. Indeling versie 2.0 (sinds dpkg 1.18.11).
Ondersteuning bij het maken van een pakket
/usr/share/dpkg/architecture.mk
Makefile-fragment dat alle variabelen die dpkg-architecture uitvoert, behoorlijk instelt en
exporteert (sinds dpkg 1.16.1).
VOORBEELDEN
dpkg-buildpackage kan gebruikt worden met de optie -a en geeft die door aan dpkg-architecture. Andere
voorbeelden:
CC=i386-gnu-gcc dpkg-architecture -c debian/rules build
eval `dpkg-architecture -u`
Verifieer of de huidige of opgegeven hostarchitectuur gelijk is aan een architectuur:
dpkg-architecture -elinux-alpha
dpkg-architecture -amips -elinux-mips
Verifieer of de huidige of opgegeven hostarchitectuur een Linux-systeem is:
dpkg-architecture -ilinux-any
dpkg-architecture -ai386 -ilinux-any
Het gebruik in debian/rules
De omgevingsvariabelen die door dpkg-architecture ingesteld worden, worden doorgegeven aan debian/rules
als variabelen voor make (zie de documentatie van make). U mag er echter niet op vertrouwen, aangezien
dit het handmatig uitvoeren van het script verhindert. In de plaats daarvan zou u ze altijd moeten
initialiseren met door dpkg-architecture met de optie -q te gebruiken. Hier volgen enkele voorbeelden die
ook illustreren hoe u in uw pakket ondersteuning voor cross-compilatie kunt verbeteren:
Het opvragen van het GNU-systeemtype en dit doorgeven aan ./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)
Iets enkel voor een specifieke architectuur doen:
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq ($(DEB_HOST_ARCH),alpha)
[...]
endif
of indien u enkel dient te controleren wat het type CPU of OS is, moet u de variabele DEB_HOST_ARCH_CPU
of DEB_HOST_ARCH_OS gebruiken.
Merk op dat u ook kunt betrouwen op een extern Makefile-fragment om al de variabelen behoorlijk in te
stellen die door dpkg-architecture kunnen aangeleverd worden:
include /usr/share/dpkg/architecture.mk
ifeq ($(DEB_HOST_ARCH),alpha)
[...]
endif
In ieder geval moet u nooit dpkg --print-architecture gebruiken om architectuurinformatie te bekomen
tijdens het bouwen van een pakket.
OMGEVING
DPKG_DATADIR
Indien deze variabele een waarde heeft, zal ze gebruikt worden als de data-map van dpkg waarin
zich de architectuurtabellen bevinden (sinds dpkg 1.14.17). Staat standaard ingesteld op
«/usr/share/dpkg».
DPKG_COLORS
Stelt de kleurmodus in (sinds dpkg 1.18.5). Waarden die momenteel gebruikt mogen worden zijn: auto
(standaard), always en never.
DPKG_NLS
Indien dit ingesteld is, zal het gebruikt worden om te beslissen over het activeren van
moedertaalondersteuning, ook gekend als internationaliseringsondersteuning (of i18n) (sinds dpkg
1.19.0). Geldige waarden zijn: 0 and 1 (standaard).
OPMERKINGEN
Alle lange commando- en optienamen kunnen slechts sinds dpkg 1.17.17 gebruikt worden.
ZIE OOK
dpkg-buildpackage(1).
1.19.7 2022-05-25 dpkg-architecture(1)