Man page - dpkg-architecture(1)
Packages contains this manual
- deb822(5)
- dpkg-vendor(1)
- deb-symbols(5)
- deb-src-rules(5)
- dpkg-mergechangelogs(1)
- dsc(5)
- deb-src-control(5)
- dpkg-shlibdeps(1)
- dpkg-genbuildinfo(1)
- dpkg-scanpackages(1)
- deb-substvars(5)
- dpkg-parsechangelog(1)
- dpkg-architecture(1)
- deb-triggers(5)
- deb-changelog(5)
- deb-extra-override(5)
- deb-buildinfo(5)
- dpkg-buildpackage(1)
- dpkg-distaddfile(1)
- dpkg-gencontrol(1)
- dpkg-buildtree(1)
- deb-postrm(5)
- deb-version(7)
- deb-prerm(5)
- deb-preinst(5)
- deb-src-files(5)
- dpkg-buildapi(1)
- dpkg-checkbuilddeps(1)
- deb-src-symbols(5)
- deb-old(5)
- dpkg-source(1)
- deb-changes(5)
- deb-origin(5)
- dpkg-buildflags(1)
- deb-override(5)
- deb(5)
- dpkg-scansources(1)
- deb-control(5)
- deb-split(5)
- deb-shlibs(5)
- dpkg-build-api(7)
- deb-postinst(5)
- deb-conffiles(5)
- dpkg-genchanges(1)
- dpkg-gensymbols(1)
- dpkg-name(1)
- deb-md5sums(5)
apt-get install dpkg-dev
Available languages:
en fr pt nl sv deManual
dpkg-architecture
NAMNSYNOPS
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.