Man page - dpkg-architecture(1)

Packages contains this manual

Available languages:

en fr pt nl sv de

Manual

dpkg-architecture

NAAM
OVERZICHT
BESCHRIJVING
COMMANDO’S
OPTIES
TERMINOLOGIE
VARIABELEN
BESTANDEN
Architectuurtabellen
Ondersteuning bij het maken van een pakket
VOORBEELDEN
Het gebruik in debian/rules
OMGEVING
OPMERKINGEN
ZIE OOK

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 ofwel de variabele DEB_BUILD_ARCH indien deze ingesteld is (en --force niet werd opgegeven), of 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, anders wordt de variabele DEB_HOST_ARCH gebruikt als die ingesteld werd (en --force niet opgegeven werd). 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

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

Een export-commando tonen. Dit kan gebruikt worden om de omgevingsvariabelen in te stellen met behulp van het commando eval van de POSIX shell of van make, afhankelijk van de indeling van de uitvoer.

-u , --print-unset

Een commando tonen dat vergelijkbaar is met --print-set , maar om alle variabelen leeg te maken.

-c , --command commando-tekenreeks

Een commando-tekenreeks uitvoeren in een omgeving waarin alle variabelen ingesteld zijn op de vastgelegde waarde.

Als de commando-tekenreeks shell-metatekens bevat, dan wordt het aangeroepen via de bourne-shell van het systeem.

-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 indeling

Stelt de indeling van de uitvoer van --print-set en --print-unset (sinds dpkg 1.20.6) in op ofwel shell (standaard) of 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 of waar de emulator code voor zal uitvoeren. Dit is enkel nodig bij het bouwen van een kruisgereedschapsketen (cross-toolchain) (of emulator), een die gebouwd zal worden op de bouwarchitectuur om uitgevoerd te worden op de hostarchitectuur en die zelf code zal bouwen (of geëmuleerd zal uitvoeren) voor de doelarchitectuur.

Debian-architectuur

De tekenreeks waarmee de Debian-architectuur aangeduid wordt, welke gebruikt wordt in binaire pakketten, en die de binaire boomstructuur specificeert in een pakketarchief.

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.

Het CPU gedeelte bevat nooit een koppelteken, terwijl het systeemgedeelte zelf een koppelteken kan bevatten om een kernel te scheiden van de algemene ABI, waarbij de algemene ABI zowel runtime (zoals libc) als uitvoerbare ABI-specificaties kan bevatten die zonder koppelteken zijn samengevoegd.

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 gelezen uit de omgeving (tenzij --force werd opgegeven) en door dpkg-architecture ingesteld (zie de sectie TERMS voor een beschrijving van het naamgevingsschema):
DEB_BUILD_ARCH

De Debian architectuur van de bouwmachine.

Opmerking : Als u geen gereedschappen bouwt die tijdens de bouw moeten worden uitgevoerd, zijn dit waarschijnlijk niet de variabelen die u zoekt. Zie sectie "TERMS" voor de betekenis van deze termen.

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 onderdeel GNU CPU van DEB_BUILD_GNU_TYPE .

DEB_BUILD_GNU_SYSTEM

Het onderdeel GNU system 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 onderdeel GNU CPU van DEB_HOST_GNU_TYPE .

DEB_HOST_GNU_SYSTEM

Het onderdeel GNU system 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).

Opmerking : Als u geen cross-gereedschapssets bouwt (of emulators), zijn dit waarschijnlijk niet de variabelen die u zoekt. Zie sectie "TERMS" voor de betekenissen van deze termen.

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 onderdeel GNU CPU van DEB_TARGET_GNU_TYPE (sinds dpkg 1.17.14).

DEB_TARGET_GNU_SYSTEM

Het onderdeel GNU system 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)

Verifiëren of de huidige of opgegeven hostarchitectuur gelijk is aan een architectuur:

dpkg-architecture -elinux-arm64
dpkg-architecture -ariscv64 -elinux-riscv64

Verifiëren of de huidige of opgegeven hostarchitectuur een Linux-systeem is:

dpkg-architecture -ilinux-any
dpkg-architecture -aamd64 -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),arm64)
[...]
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),arm64)
[...]
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).