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 ett externt anrop till
dpkg(1)
och kan inte ställas in på kommandoraden.
Du kan ange värdarkitektur genom att ange en av, eller båda, flaggorna
-a och
-t. 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
-a och
-t, 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
- Skriv miljövariabler, en per rad, på formatet
VARIABEL=värde. Detta är förvald
åtgärd.
- -edebianarkitektur
- Kontrollera arkitektur för likhet. Som standard
jämförs debianarkitektur mot den aktuella
Debianarkitekturen, som är värd. Åtgärden expanderar
inte jokertecken i arkitekturer. Kommandet avslutar med status 0 om det
är en träff, 1 om det inte är en träff.
- -iarkitektursökmönster
- Kontrollera identitet på arkitekturen genom att
expandera arkitektursökmönster som ett
arkitektursökmönster med jokertecken, och jämföra med
den aktuella Debianarkitekturen. Kommandot avslutas med status 0 vid
träff, 1 om inte träff.
- -qvariabelnamn
- Skriv värdet på en enkel variabel.
- -s
- Visar ett exportkommando. Detta kan användas för
att sätta miljövariabler med eval.
- -u
- Visar ett kommando liknande -s som för att
nollställa alla variabler.
- -c kommando
- Exekvera ett kommando i en miljö som har alla
variabler satta till det bestämda värdet.
- -L
- Visa en lista över giltiga arkitekturnamn.
- -?, --help
- Visar hjälpskärm och avslutar.
- --version
- Visar version och avslutar.
FLAGGOR¶
- -adebianarkitektur
- Välj Debianarkitektur.
- -tgnu-systemtyp
- Välj GNU-systemtyp.
- -f
- 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.
- Debianarkitektur
- Debianarkitektursträngen, vilken anger
binärträdet i -s1FT-arkivet. Exempel: i386, sparc,
hurd-i386.
- arkitektursökmönster
- Ett arkitektursökmönster är en speciell
arkitektursträng som matchar alla äkta arkitekturer som finns i
den. Den genella formen är <kärna>-<cpu>. Exempel:
linux-any, any-i386, hurd-any.
- GNU-systemtyp
- En arkitekturspecificeringssträng består av
två delar, avdelade med bindestreck: processor och system. Exempel:
i386-linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd.
VARIABLER¶
Följande variabler sätts av
dpkg-architecture:
- DEB_BUILD_ARCH
- Debianarkitekturen för byggmaskinen.
- DEB_BUILD_ARCH_OS
- Debiansystemnamnet för byggmaskinen.
- DEB_BUILD_ARCH_CPU
- Debian-processornamnet för byggmaskinen.
- DEB_BUILD_ARCH_BITS
- Pekarstorleken för byggmaskinen (i bitar).
- DEB_BUILD_ARCH_ENDIAN
- Endian för byggmaskinen (little / big).
- DEB_BUILD_GNU_CPU
- CPU-delen av DEB_BUILD_GNU_TYPE.
- DEB_BUILD_GNU_SYSTEM
- 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_OS
- Debiansystemnamnet för värdmaskinen.
- DEB_HOST_ARCH_CPU
- Debian-processornamnet för värdmaskinen.
- DEB_HOST_ARCH_BITS
- Pekarstorleken för värdmaskinen (i bitar).
- DEB_HOST_ARCH_ENDIAN
- Endian för värdmaskinen (little / big).
- DEB_HOST_GNU_CPU
- CPU-delen av DEB_HOST_GNU_TYPE.
- DEB_HOST_GNU_SYSTEM
- 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.
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)
[...]
configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
Gör något endast för en specifik arkitektur:
-
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq ($(DEB_HOST_ARCH),alpha)
[...]
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-utklipp
sätter alla variabler
dpkg-architecture kan tillhandahålla:
-
include /usr/share/dpkg/architecture.mk
ifeq ($(DEB_HOST_ARCH),alpha)
[...]
endif
Oavsett bör du aldrig använda
dpkg --print-architecture
för att hämta arkitekturinformation när paketet byggs.
BAKÅTKOMPATIBILITET¶
Makefile-utklippet /usr/share/dpkg/architecture.mk tillhandahålls av
dpkg-dev från version 1.16.1.
Variablerna DEB_*_ARCH_BITS och DEB_*_ARCH_ENDIAN introducerades i dpkg-dev
1.15.4. Om de används i
debian/rules måste därför
ett byggberoende deklareras på dpkg-dev (>= 1.15.4).
Variablerna DEB_HOST_ARCH_CPU och DEB_HOST_ARCH_OS introducerades i dpkg-dev
1.13.2.
Flaggorna
-e och
-i introducerades i
dpkg-architecture
relativt nyligen (sedan dpkg 1.13.13).
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 en arkitektur är samma som den nuvarande eller en given:
- dpkg-architecture -elinux-alpha
- dpkg-architecture -amips -elinux-mips
Se om den aktuella arkitekturen eller en arkitektur som anges med -a är ett
Linuxsystem:
- dpkg-architecture -ilinux-any
- dpkg-architecture -ai386 -ilinux-any
FILER¶
Alla dessa filer måste finnas för att
dpkg-architecture
måste finnas. Deras placering kan överstyras vid körning med
miljövariabeln
DPKG_DATADIR.
- /usr/share/dpkg/cputable
- Tabell över kända processornamn och deras
motsvarande GNU-namn.
- /usr/share/dpkg/ostable
- Tabell över kända operativsystemsnamn och deras
motsvarande GNU-namn.
- /usr/share/dpkg/triplettable
- Tabell över Debianarkitekturtripplar och deras
motsvarande Debianarkitekturnamn.
SE ÄVEN¶
dpkg-buildpackage(1),
dpkg-cross(1).
ÖVERSÄTTNING¶
Peter Krefting och Daniel Nylander.