dpkg-architecture
Section: dpkg suite (1)
Updated: 1970-01-01
Page Index
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.
The build architecture is always determined by either the DEB_BUILD_ARCH
variable if set (and --force not being specified) or by an external call
to dpkg(1), and cannot be set at the command line.
You can specify the host architecture by providing one or both of the
options --host-arch and --host-type, otherwise the DEB_HOST_ARCH
variable is used if set (and --force not being specified). The default is
determined by an external call to gcc(1), or the same as the build
architecture if CC or gcc are both not available. One out of
--host-arch and --host-type is sufficient, the value of the other will
be set to a usable default. Indeed, it is often better to only specify one,
because dpkg-architecture will warn you if your choice does not match the
default.
COMMANDO'S
- -l, --list
-
De omgevingsvariabelen weergeven, één per regel, volgens de indeling
VARIABELE=waarde. Dit is de standaardactie.
- -e, --equal architectuur
-
Nagaan 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
-
Nagaan 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
-
De waarde van één enkele variabele tonen.
- -s, --print-set
-
Print an export command. This can be used to set the environment variables
using the POSIX shell or make eval, depending on the output format.
- -u, --print-unset
-
Print a similar command to --print-set but to unset all variables.
- -c, --command commando-tekenreeks
-
Een commando-tekenreeks uitvoeren in een omgeving waarin alle variabelen
ingesteld zijn op de vastgelegde waarde.
- -L, --list-known
-
Een lijst van geldige architectuurbenamingen tonen. Kan eventueel ingeperkt
worden met een of meer van de vergelijkingsopties --match-wildcard,
--match-bits of --match-endian (sinds dpkg 1.17.14).
- -?, --help
-
Info tonen over het gebruik en afsluiten.
- --version
-
De versie tonen en afsluiten.
OPTIES
- -a, --host-arch architectuur
-
De Debian-architectuur voor de host instellen.
- -t, --host-type gnu-systeemtype
-
Het GNU-systeemtype instellen voor de host.
- -A, --target-arch architectuur
-
De Debian-architectuur instellen voor het doel (sinds dpkg 1.17.14).
- -T, --target-type gnu-systeemtype
-
Het GNU-systeemtype instellen voor het doel (sinds dpkg 1.17.14).
- -W, --match-wildcard architectuurjokerteken
-
De architecturen die door --list-known weergegeven worden, beperken tot
die welke beantwoorden aan het opgegeven architectuurjokerteken (sinds dpkg
1.17.14).
- -B, --match-bits architectuur-bits
-
De architecturen die door --list-known weergegeven worden, beperken tot
die met de opgegeven CPU-bits (sinds dpkg 1.17.14). Ofwel 32 ofwel 64.
- -E, --match-endian architectuur-bytevolgorde
-
De architecturen die door --list-known weergegeven worden, beperken tot
die met de opgegeven bytevolgorde (endianness) (sinds dpkg 1.17.14). Ofwel
little ofwel big.
- --print-format format
-
Sets the output format for --print-set and --print-unset (since dpkg
1.20.6), to either shell (default) or make.
- -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
The following variables are read from the environment (unless
--force has
been specified) and set by
dpkg-architecture (see the
TERMS section
for a description of the naming scheme):
- DEB_BUILD_ARCH
-
De Debian architectuur van de bouwmachine.
- DEB_BUILD_ARCH_ABI
-
The Debian ABI name of the build machine (since 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
-
The Debian CPU name of the build machine (since 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
-
The GNU CPU part of DEB_BUILD_GNU_TYPE.
- DEB_BUILD_GNU_SYSTEM
-
The GNU system part of 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
-
The Debian ABI name of the host machine (since 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
-
The Debian CPU name of the host machine (since 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
-
The GNU CPU part of DEB_HOST_GNU_TYPE.
- DEB_HOST_GNU_SYSTEM
-
The GNU system part of 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
-
The Debian ABI name of the target machine (since 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
-
The Debian CPU name of the target machine (since 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
-
The GNU CPU part of DEB_TARGET_GNU_TYPE (since dpkg 1.17.14).
- DEB_TARGET_GNU_SYSTEM
-
The GNU system part of DEB_TARGET_GNU_TYPE (since 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)
Verifiëren of de huidige of opgegeven hostarchitectuur gelijk is aan een
architectuur:
dpkg-architecture -elinux-alpha
dpkg-architecture -amips -elinux-mips
Verifiëren 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).