Man page - dpkg-architecture(1)

Packages contains this manual

Available languages:

en fr pt nl sv de

Manual

dpkg-architecture

NAMN
SYNOPS
BESKRIVNING
KOMMANDON
FLAGGOR
TERMINOLOGI
VARIABLER
FILER
Arkitekturtabeller
Paketeringsstöd
EXEMPEL
AnvÀnda i debian/rules
MILJÖVARIABLER
ANTECKNINGAR
SE ÄVEN
ÖVERSÄTTNING

NAMN

dpkg-architecture - stÀll in och bestÀm arkitektur för paket som byggs

SYNOPS

dpkg-architecture [ flagga ...] [ ÄtgÀrd ]

BESKRIVNING

dpkg-architecture innehÄller en funktion för att bestÀmma och stÀlla in bygg- och vÀrdarkitekturerna för att bygga paket.

Byggarkitekturen bestÀms alltid av antingen variabeln DEB_BUILD_ARCH om den Àr satt (och --force inte anges) eller genom ett externt anrop till dpkg (1) och kan inte vÀljas frÄn kommandoraden.

Du kan ange vÀrdarkitektur genom att ange en av, eller bÄda, flaggorna --host-arch och --host-type , annars anvÀnds variabeln DEB_HOST_ARCH om den Àr satt (och --force inte anges). Förvalet bestÀms av ett externt anrop till gcc (1), eller Àr detsamma som byggarkitekturen varken CC eller gcc Àr tillgÀngliga. Det rÀcker att ange en av --host-arch och -host-type , vÀrdet pÄ den andra kommer stÀllas in till ett fungerande förval. Det Àr faktiskt oftast bÀttre att bara ange den ena eftersom dpkg-architecture kommer varna dig om ditt val inte överensstÀmmer med förvalet.

KOMMANDON

-l , --list

Skriv miljövariabler, en per rad, pÄ formatet VARIABEL=vÀrde . Detta Àr förvald ÄtgÀrd.

-e , --equal arkitektur

Kontrollera arkitektur för likhet (sedan dpkg 1.13.13). Det jĂ€mför den aktuella eller angivna Debian-vĂ€rdarkitekturen mot arkitektur , för att se om de Ă€r lika. ÅtgĂ€rden expanderar inte jokertecken i arkitekturer. Kommandot avslutar med status 0 om det Ă€r en trĂ€ff, 1 om det inte Ă€r en trĂ€ff.

-i , --is arkitektur-jokertecken

Kontrollera arkitekturens identitet (sedan dpkg 1.13.13). Det jÀmför den aktuella eller angivna Debian-vÀrdarkitekturen mot arkitektur-jokertecken efter att ha expanderat det som ett arkitektur-jokertecken, för att se om de Àr lika. Kommandot avslutar med status 0 om det Àr en trÀff, 1 om det inte Àr en trÀff.

-q , --query variabelnamn

Skriv vÀrdet pÄ en enkel variabel.

-s , --print-set

Visar ett exportkommando. Detta kan anvÀndas för att sÀtta miljövariabler med POSIX-skalet eller make eval , beroende pÄ utdataformatet.

-u , --print-unset

Visar ett kommando liknande --print-set men för att ta bort vÀrdet för alla variabler.

-c , --command kommandostrÀng

Exekvera en kommandostrÀng i en miljö som har alla variabler satta till det bestÀmda vÀrdet.

Om kommandostrÀng innehÄller skalmetatecken kommer det att anropas genom systemets bourne-skal.

-L , --list-known

Visar en lista över giltiga arkitekturnamn. Möjligen begrÀnsad av en eller flera av trÀffvalen --match-wildcard , --match-bits eller --match-endian (sedan dpkg 1.17.14).

-? , --help

Visar hjÀlpskÀrm och avslutar.

--version

Visar version och avslutar.

FLAGGOR

-a , --host-arch arkitektur

Ange vÀrd-Debianarkitekturen.

-t , --host-type gnu-system-typ

Ange vÀrd-GNU-systemtypen.

-A , --target-arch arkitektur

Ange mÄl-Debian-arkitekturen (sedan dpkg 1.17.14).

-T , --target-type gnu-system-typ

Ange mÄl-GNU-systemtypen (sedan dpkg 1.17.14).

-W , --match-wildcard arkitektur-jokertecken

BegrÀnsa arkitekturerna som visas med --list-known till en som motsvarar det angivna arkitektur-jokertecknet (sedan dpkg 1.17.14).

-B , --match-bits arkitektur-bitar

BegrÀnsa arkitekturerna som visas med --list-known till en med angivet antal CPU-bitar (sedan dpkg 1.17.14). Antingen 32 eller 64 .

-E , --match-endian architecture-endian

BegrÀnsa arkitekturerna som visas med --list-known till en som har angiven endian (sedan dpkg 1.17.14). Antingen little (liten endian) eller big (stor endian).

--print-format format

VÀljer utdataformatet för --print-set och --print-unset (sedan dpkg 1.20.6), till antingen shell (förval) eller make .

-f , --force

VÀrden som sÀtts av befintliga miljövariabler med samma namn som de som anvÀnds av skriptet anvÀnds (t.ex av dpkg-architecture ), sÄvida inte denna tvingande flagga anges. Det gör det möjligt för anvÀndaren att överstyra ett vÀrde Àven om anropet till dpkg-architecture Àr begravt djupt inuti ett annat skript (till exempel dpkg-buildpackage (1)).

TERMINOLOGI

byggmaskin

Maskinen paketet byggs pÄ.

vÀrdmaskin

Maskinen paketet byggs för.

mÄlmaskin

Maskinen kompilatorn bygger för, eller emulatorn kör kod för. Endast nödvÀndigt för att bygga en korsverktygskedja (eller emulator), en som byggs pÄ byggarkitekturen och körs pÄ mÄlarkitekturen, och som sjÀlv kommer att bygga (eller köra under emulering) kod för mÄlarkitekturen.

Debianarkitektur

DebianarkitekturstrÀngen, som anvÀnds av binÀrpaket och anger binÀrtrÀdet i paketarkivet.

Exempel: i386, sparc, hurd-i386.

Debianarkitektur-tupel

En Debianarkitektur-tupel Àr den fullt kvalificerade arkitekturen med alla dess komponenter detaljerat redogjort för. Den skiljer sig frÄn Debianarkitekturen i det att Ätminstone cpu -komponenten inte innehÄller abi . Den nuvarande tupeln har formen abi - libc - os - cpu .

Exempel: base-gnu-linux-amd64, eabihf-musl-linux-arm.

Debianarkitektursökmönster

Ett Debianarkitektursökmönster Àr en speciell arkitekturstrÀng som matchar alla Àkta arkitekturer som finns i den. Den genella formen Àr en Debianarkitektur-tupel med fyra eller fÀrre element, och dÀr Ätminstone ett av dem Àr any . Saknade element i tupeln lÀggs till i början implicit som any , och följande par Àr dÀrmet ekvivalenta:
any
- any - any - any = any
any
- any - os - any = os - any
any
- libc - any - any = libc - any - any

Exempel: linux-any, any-i386, hurd-any, eabi-any-any-arm, musl-any-any.

GNU-systemtyp

En arkitekturspecificeringsstrÀng som bestÄr av tvÄ delar, avdelade med bindestreck: processor och system.

Processordelen innehÄller aldrig ett bindestreck, medan systemdelen kan i sig innehÄlla ett bindestreck för att skilja mellan en kÀrna och dess generella ABI, dÀr det generella ABI:et kan innehÄlla bÄde ABI-angivelser bÄde för körtid (sÄsom libc) och program, sammanslagna utan bindestreck.

Exempel: i586-linux-gnu, sparc-linux-gnu, i686-gnu, x86_64-netbsd.

multiark-triplett

Den förtydligade GNU-systemtypen, anvÀnd i filsystemssökvÀg. Tripletten förÀndras inte nÀr baslinje-ISA:en uppdateras, vilket innebÀr att de resulterande sökvÀgarna Àr stabila över tid. De enda skillnaderna mot GNU-systemtypen Àr för nÀrvarande att CPU-delen för i386-baserade system alltid Àr i386.

Exempel: i386-linux-gnu, x86_64-linux-gnu. Exempel pÄ sökvÀgar: /lib/powerpc64le-linux-gnu/, /usr/lib/i386-kfreebsd-gnu/.

VARIABLER

Följande variabler lÀses frÄn miljön (med mindre --force har angivits) och sÀtts av dpkg-architecture (se stycket TERMINOLOGI för en beskrivning av hur namngivningen Àr uppbyggd):
DEB_BUILD_ARCH

Debianarkitekturen för byggmaskinen.

Observera : Om du inte bygger verktyg som behöver köras under bygget Àr det hÀr antagligen inte variablerna du ser efter. Se stycket "TERMINOLOGI" för betydelsen av dessa termer.

DEB_BUILD_ARCH_ABI

Debian-ABI-namnet för byggmaskinen (sedan dpkg 1.18.11).

DEB_BUILD_ARCH_LIBC

Debian-libc-namnet för byggmaskinen (sedan dpkg 1.18.11).

DEB_BUILD_ARCH_OS

Debiansystemnamnet pÄ byggmaskinen (sedan dpkg 1.13.2).

DEB_BUILD_ARCH_CPU

Debian-processornamnet för byggmaskinen (sedan dpkg 1.13.2).

DEB_BUILD_ARCH_BITS

Pekarstorleken för byggmaskinen (i bitar; sedan dpkg 1.15.4).

DEB_BUILD_ARCH_ENDIAN

Endian för byggmaskinen (little / big; sedan dpkg 1.15.4).

DEB_BUILD_GNU_CPU

GNU CPU-delen av DEB_BUILD_GNU_TYPE .

DEB_BUILD_GNU_SYSTEM

GNU-systemdelen av DEB_BUILD_GNU_TYPE .

DEB_BUILD_GNU_TYPE

GNU-systemtypen för byggmaskinen.

DEB_BUILD_MULTIARCH

Den förtydligade GNU-systemtypen för byggmaskinen, anvÀnds för sökvÀgar i filsystemet.

DEB_HOST_ARCH

Debianarkitekturen för vÀrdmaskinen.

DEB_HOST_ARCH_ABI

Debian-ABI-namnet för vÀrdmaskinen (sedan dpkg 1.18.11).

DEB_HOST_ARCH_LIBC

Debian-libc-amnet för vÀrdmaskinen (sedan dpkg 1.18.11).

DEB_HOST_ARCH_OS

Debiansystemnamnet för vÀrdmaskinen (sedan dpkg 1.13.2).

DEB_HOST_ARCH_CPU

Debian-processornamnet för vÀrdmaskinen (sedan dpkg 1.13.2).

DEB_HOST_ARCH_BITS

Pekarstorleken för vÀrdmaskinen (i bitar; sedan dpkg 1.15.4).

DEB_HOST_ARCH_ENDIAN

Endian för vÀrdmaskinen (little / big; sedan dpkg 1.15.4).

DEB_HOST_GNU_CPU

GNU-processordelen av DEB_HOST_GNU_TYPE .

DEB_HOST_GNU_SYSTEM

GNU-systemdelen av DEB_HOST_GNU_TYPE .

DEB_HOST_GNU_TYPE

GNU-systemtypen för vÀrdmaskinen.

DEB_HOST_MULTIARCH

Den förtydligade GNU-systemtypen för vÀrdmaskinen, anvÀnds för sökvÀgar i filsystemet (sedan dpkg 1.16.0).

DEB_TARGET_ARCH

Debianarkitekturen för mÄlmaskinen (sedan dpkg 1.17.14).

Observera : Om du inte bygger korsverktygskedjor (eller emulatorer) Àr det hÀr antagligen inte variablerna du ser efter. Se stycket "TERMINOLOGI" för betydelsen av dessa termer.

DEB_TARGET_ARCH_ABI

Debian-ABI-namnet för mÄlmaskinen (sedan dpkg 1.18.11).

DEB_TARGET_ARCH_LIBC

Debian-libc-namnet för mÄlmaskinen (sedan dpkg 1.18.11).

DEB_TARGET_ARCH_OS

Debiansystemnamnet för mÄlmaskinen (sedan dpkg 1.17.14).

DEB_TARGET_ARCH_CPU

Debian-processornamnet för mÄlmaskinen (sedan dpkg 1.17.14).

DEB_TARGET_ARCH_BITS

Pekarstorleken för mÄlmaskinen (i bitar; sedan dpkg 1.17.14).

DEB_TARGET_ARCH_ENDIAN

Endian för mÄlmaskinen (little / big; sedan dpkg 1.17.14).

DEB_TARGET_GNU_CPU

GNU CPU-delen av DEB_TARGET_GNU_TYPE (sedan dpkg 1.17.14).

DEB_TARGET_GNU_SYSTEM

GNU-systemdelen av DEB_TARGET_GNU_TYPE (sedan dpkg 1.17.14).

DEB_TARGET_GNU_TYPE

GNU-systemnamnet för mÄlmaskinen (sedan dpkg 1.17.14).

DEB_TARGET_MULTIARCH

Den förtydligade GNU-systemtypen för mÄlmaskinen, anvÀnds för sökvÀgar i filsystemet (sedan dpkg 1.17.14).

FILER

Arkitekturtabeller

Alla dessa filer mÄste finnas för att dpkg-architecture ska fungera. Deras placering kan överstyras vid körning med miljövariabeln DPKG_DATADIR . Tabellerna innehÄller ett pseudo-fÀlt med format- Version pÄ första raden för att ange format, sÄ att tolkar kan kontrollera om de förstÄr det, sÄsom "# Version=1.0".
/usr/share/dpkg/cputable

Tabell över kÀnda processornamn och deras motsvarande GNU-namn. Formatversion 1.0 (sedan dpkg 1.13.2).

/usr/share/dpkg/ostable

Tabell över kÀnda operativsystemsnamn och deras motsvarande GNU-namn. Formatversion 2.0 (sedan dpkg 1.18.11).

/usr/share/dpkg/tupletable

Mappning mellan Debianarkitektur-tuplar och Debianarkitekturnamn. Formatversion 1.0 (sedan dpkg 1.18.11).

/usr/share/dpkg/abitable

Tabell över Debianarkitektur-ABI-attributöverstyrningar. Formatversion 2.0 (sedan dpkg 1.18.11).

Paketeringsstöd

/usr/share/dpkg/architecture.mk

Makefile-klipp som sÀtter alla variabler dpkg-architecture skriver (sedan dpkg 1.16.1):

EXEMPEL

dpkg-architecture godtar flaggan -a och sÀnder den vidare till dpkg-architecture . Andra exempel:

CC=i386-gnu-gcc dpkg-architecture -c debian/rules build
eval $(dpkg-architecture -u)

Kontrollera om aktuell eller angiven vÀrdarkitektur Àr identisk till en arkitektur:

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

Se om den aktuella eller angivna arkitekturen Àr ett Linuxsystem:

dpkg-architecture -ilinux-any

dpkg-architecture -aamd64 -ilinux-any

AnvÀnda i debian/rules

Miljövariablerna som sÀtts av dpkg-architecture sÀnds till debian/rules som make-variabler (se dokumentationen för make). Du bör dock inte bero pÄ dem eftersom detta förhindrar manuella anrop till skriptet. Du bör istÀllet alltid initiera dem med dpkg-architecture med -q -flaggan. HÀr Àr nÄgra exempel, vilka Àven visar hur du kan förbÀttra stödet för korskompilering i ditt paket:

HÀmta GNU-systemtypen och vidaresÀnd den till ./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)

Gör nÄgot endast för en specifik arkitektur:

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq ($(DEB_HOST_ARCH),arm64)
[...]
endif

eller, om du bara vill testa pÄ processor- eller OS-typ, anvÀnd variablerna DEB_HOST_ARCH_CPU eller DEB_HOST_ARCH_OS .

Observera att du Àven kan bero pÄ att ett externt Makefile-klipp sÀtter alla variabler dpkg-architecture kan tillhandahÄlla:

include /usr/share/dpkg/architecture.mk

ifeq ($(DEB_HOST_ARCH),arm64)
[...]
endif

Oavsett bör du aldrig anvÀnda dpkg --print-architecture för att hÀmta arkitekturinformation nÀr paketet byggs.

MILJÖVARIABLER

DPKG_DATADIR

Om satt, anvĂ€nds som datakatalog för dpkg , dĂ€r arkitekturtabellerna ligger (sedan dpkg 1.14.17). Förval Ă€r ”/usr/share/dpkg”.

DPKG_COLORS

VÀljer fÀrglÀge (sedan dpkg 1.18.5). För nÀrvarande godtas följande vÀrden: auto (förval), always och never .

DPKG_NLS

Om satt, anvÀnds för att bestÀmma om lokalt sprÄkstöd ska aktiveras, Àven kÀnt som internationaliseringsstöd (eller i18n) (sedan dpkg 1.19.0). TillÄtna vÀrden Àr: 0 och 1 (förval).

ANTECKNINGAR

De lÄnga kommando- och flaggnamnen Àr endast tillgÀngliga sedan dpkg 1.17.17.

SE ÄVEN

dpkg-buildpackage (1).

ÖVERSÄTTNING

Peter Krefting och Daniel Nylander.