Provided by: dpkg-dev_1.19.7ubuntu3.2_all 

BEZEICHNUNG
dpkg-architecture - Architektur zum Paketbau setzen und bestimmen
ÜBERSICHT
dpkg-architecture [Option …] [Befehl]
BESCHREIBUNG
dpkg-architecture stellt eine Möglichkeit bereit, die Rechner-Architektur für den Paketbau zu bestimmen
und zu setzen.
Die Bau-Architektur wird immer über einen externen Aufruf an dpkg(1) bestimmt und kann nicht auf der
Befehlszeile gesetzt werden.
Sie können die Host-Architektur (Wirt-Architektur) spezifizieren, indem Sie eine oder beide der Optionen
--host-arch oder --host-type verwenden. Der Standardwert wird über einen externen Aufruf an gcc(1)
ermittelt oder ist identisch mit der Bauarchitektur, falls sowohl CC als auch Gcc nicht verfügbar sind.
Einer von --host-arch oder --host-type ist ausreichend, der Wert des anderen wird auf einen brauchbaren
Wert gesetzt. Tatsächlich ist es oft besser, nur einen der beiden anzugeben, da dpkg-architecture Sie
warnen wird, falls Ihre Wahl nicht mit dem Standardwert übereinstimmt.
BEFEHLE
-l, --list
Zeige die Umgebungsvariablen, eine pro Zeile, in dem Format VARIABLE=Wert. Dies ist die
Standardaktion.
-e, --equal Architektur
Überprüfe auf Gleichheit der Architekturen (seit Dpkg 1.13.13). Es prüft die aktuelle oder
angegebene Debian-Host-Architektur mit Architektur auf Gleichheit. Diese Aktion expandiert nicht
die Architektur-Platzhalter (Wildcards). Der Befehl beendet sich mit einem Exit-Status von 0,
falls eine Übereinstimmung besteht, andernfalls mit 1.
-i, --is Architektur-Platzhalter
Überprüfe auf Gleichheit der Architekturen (seit Dpkg 1.13.13). Es prüft die aktuelle oder
angegebene Debian-Host-Architektur mit Architektur-Platzhalter, nachdem dieser zu einem
Architektur-Platzhalter expandiert wurde und prüft, ob sie passen. Der Befehl beendet sich mit
einem Exit-Status von 0, falls eine Übereinstimmung besteht, andernfalls mit 1.
-q, --query Variablenname
Zeige den Wert einer einzelnen Variablen an.
-s, --print-set
Zeige einen Export-Befehl. Dies kann dazu verwendet werden, um Umgebungsvariablen mittels eval zu
setzen.
-u, --print-unset
Ähnlich wie --print-unset, gebe einen Export-Befehl aus, der alle Variablen löscht.
-c, --command Befehlszeichenkette
Führe eine Befehlszeichenkette in einer Umgebung aus, in der alle Variablen auf die festgelegten
Werte gesetzt sind.
-L, --list-known
Gib eine Liste von gültigen Architekturnamen aus. Möglicherweise durch eine oder mehrere der
Abgleich-Optionen --match-wildcard, --match-bits oder --match-endian eingeschränkt (seit Dpkg
1.17.14).
-?, --help
Zeige den Bedienungshinweis und beende.
--version
Gebe die Version aus und beende sich.
OPTIONEN
-a, --host-arch Architektur
Setzt die Debian-Host-Architektur.
-t, --host-type GNU-Systemtyp
Setzt den Host-GNU-Systemtyp.
-A, --target-arch Architektur
Setzt die Ziel-Debian-Architektur (seit Dpkg 1.17.14).
-T, --target-type GNU-Systemtyp
Setzt den Ziel-GNU-Systemtyp (seit Dpkg 1.17.14).
-W, --match-wildcard Architektur-Platzhalter
Begrenzt die mit --list-known aufgeführten Architekturen auf solche, die auf den angegebenen
Architektur-Platzhalter passen (seit Dpkg 1.17.14).
-B, --match-bits Architektur-Bits
Begrenzt die mit --list-known aufgeführten Architekturen auf solche mit den angegebenen CPU-Bits
(seit Dpkg 1.17.14). Entweder 32 oder 64.
-E, --match-endian Architektur-Endianness
Begrenzt die mit --list-known aufgeführten Architekturen auf solche mit der angegebenen Endianness
(seit Dpkg 1.17.14). Entweder little oder big.
-f, --force
Existierende Umgebungsvariablen mit dem gleichen Namen wie vom Skript verwendet werden nicht
überschrieben (d.h. sie werden von dpkg-architecture verwendet), es sei denn, die
»force«-Markierung ist gesetzt. Dies erlaubt es dem Benutzer einen Wert zu überschreiben, selbst
wenn der Aufruf von dpkg-architecture tief in einem anderen Skript versteckt ist (beispielsweise
dpkg-buildpackage(1)).
AUSDRÜCKE
Baumaschine
Die Maschine, auf der das Paket gebaut wird.
Host-Maschine
Die Maschine, für die das Paket gebaut ist.
Ziel-Maschine
Die Maschine, für die der Compiler baut. Dies wird nur beim Bau einer Cross-Toolchain und zum Bau von
Code für die Ziel-Architektur benötigt. Die Cross-Toolchain wird auf der Bauarchitektur gebaut und
läuft dann auf der Host-Architektur.
Debian-Architektur
Die Debian-Architektur-Zeichenkette, die den binären Baum im FTP-Archiv spezifiziert. Beispiele:
i386, sparc, hurd-i386.
Debian-Architekturtupel
Ein Debian-Architekturtupel ist eine vollqualifizierte Architektur mit allen Komponenten
ausgeschrieben. Dies unterscheidet sich von der Debian-Architektur zumindestens in der Weise, dass
das ABI nicht eingebettet ist. Das aktuelle Tupel hat die Form ABI-Libc-OS-CPU. Beispiele:
base-gnu-linux-amd64, eabihf-musl-linux-arm.
Debian-Architektur-Platzhalter
Ein Debian-Architektur-Platzhalter ist eine spezielle Architektur-Zeichenkette, die auf jede reale
Architektur, die ein Teil davon ist, passt. Die allgemeine Form ist ein Debian-Architektur-Tupel mit
vier oder weniger Elementen und bei dem mindestens eines any ist. Fehlende Elemente des Tupels werden
implizit als any vorangestellt und daher sind die folgenden Tupel äquivalent:
any-any-any-any = any
any-any-os-any = os-any
any-libc-any-any = libc-any-any
Beispiele: linux-any, any-i386, hurd-any, eabi-any-any-arm, musl-any-any.
GNU-Systemtyp
Eine Architektur-Spezifikations-Zeichenkette besteht aus zwei, durch einen Bindestrich getrennten
Teilen: CPU und System. Beispiele: i586-linux-gnu, sparc-linux-gnu, i686-gnu, x86_64-netbsd.
Multiarch-Tripel
Der bereinigte GNU-Systemtyp, wird für Dateipfade verwandt. Dieses Tripel ändert sich auch nicht,
wenn das zugrundeliegende ISA erhöht wird, so dass die daraus resultierenden Pfade dauerhaft stabil
bleiben. Derzeit ist der einzige Unterschied zum GNU-Sytemtyp, dass der CPU-Anteil für i386-basierte
Systeme immer i386 lautet. Beispiele: i386-linux-gnu, x86_64-linux-gnu. Beispielpfade:
/lib/powerpc64le-linux-gnu/, /usr/lib/i386-kfreebsd-gnu/.
VARIABLEN
Die folgenden Variablen werden von dpkg-architecture gesetzt (siehe den Abschnitt AUSDRÜCKE für eine
Beschreibung des Benennungsschematas):
DEB_BUILD_ARCH
Die Debian-Architektur der Baumaschine.
DEB_BUILD_ARCH_ABI
Der Debian-ABI-Name der Baumaschine. (Seit Dpkg 1.18.11).
DEB_BUILD_ARCH_LIBC
Der Debian-Libc-Name der Baumaschine. (Seit Dpkg 1.18.11).
DEB_BUILD_ARCH_OS
Der Debian-Systemname der Baumaschine. (Seit Dpkg 1.13.2).
DEB_BUILD_ARCH_CPU
Der Debian-CPU-Name der Baumaschine. (Seit Dpkg 1.13.2).
DEB_BUILD_ARCH_BITS
Die Zeigergröße der Baumaschine in Bits. (Seit Dpkg 1.15.4).
DEB_BUILD_ARCH_ENDIAN
Die Endianness der Baumaschine (little/big; seit Dpkg 1.15.4).
DEB_BUILD_GNU_CPU
Der CPU-Teil von DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_SYSTEM
Der System-Teil von DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_TYPE
Der GNU-Systemtyp der Baumaschine.
DEB_BUILD_MULTIARCH
Der klargestellte GNU-Systemtyp der Baumaschine, wird für Dateisystempfade benutzt.
DEB_HOST_ARCH
Die Debian-Architektur der Host-Maschine.
DEB_HOST_ARCH_ABI
Der Debian-ABI-Name der Host-Maschine. (Seit Dpkg 1.18.11).
DEB_HOST_ARCH_LIBC
Der Debian-Libc-Name der Host-Maschine. (Seit Dpkg 1.18.11).
DEB_HOST_ARCH_OS
Der Debian-Systemname der Host-Maschine. (Seit Dpkg 1.13.2).
DEB_HOST_ARCH_CPU
Der Debian-CPU-Name der Host-Maschine. (Seit Dpkg 1.13.2).
DEB_HOST_ARCH_BITS
Die Zeigergröße der Host-Maschine in Bits. (Seit Dpkg 1.15.4).
DEB_HOST_ARCH_ENDIAN
Die Endianness der Host-Maschine (little/big; seit Dpkg 1.15.4).
DEB_HOST_GNU_CPU
Der CPU-Teil von DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_SYSTEM
Der System-Teil von DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_TYPE
Der GNU-Systemtyp der Host-Maschine.
DEB_HOST_MULTIARCH
Der klargestellte GNU-Systemtyp der Host-Maschine, wird für Dateisystempfade benutzt. (Seit Dpkg
1.16.0).
DEB_TARGET_ARCH
Die Debian-Architektur der Ziel-Maschine (seit Dpkg 1.17.14).
DEB_TARGET_ARCH_ABI
Der Debian-ABI-Name der Ziel-Maschine. (Seit Dpkg 1.18.11).
DEB_TARGET_ARCH_LIBC
Der Debian-Libc-Name der Ziel-Maschine. (Seit Dpkg 1.18.11).
DEB_TARGET_ARCH_OS
Der Debian-Systemname der Ziel-Maschine. (Seit Dpkg 1.17.14).
DEB_TARGET_ARCH_CPU
Der Debian-CPU-Name der Ziel-Maschine. (Seit Dpkg 1.17.14).
DEB_TARGET_ARCH_BITS
Die Zeigergröße der Ziel-Maschine in Bits. (Seit Dpkg 1.17.14).
DEB_TARGET_ARCH_ENDIAN
Die Endianness der Ziel-Maschine (little/big; seit Dpkg 1.17.14).
DEB_TARGET_GNU_CPU
Der CPU-Teil von DEB_TARGET_GNU_TYPE. (Seit Dpkg 1.17.14).
DEB_TARGET_GNU_SYSTEM
Der System-Teil von DEB_TARGET_GNU_TYPE. (Seit Dpkg 1.17.14).
DEB_TARGET_GNU_TYPE
Der GNU-Systemtyp der Ziel-Maschine. (Seit Dpkg 1.17.14).
DEB_TARGET_MULTIARCH
Der klargestellte GNU-Systemtyp der Ziel-Maschine, wird für Dateisystempfade benutzt. (Seit Dpkg
1.17.14).
DATEIEN
Architekturtabellen
Alle diese Dateien müssen vorhanden sein, damit dpkg-architecture funktioniert. Ihr Ort kann zur Laufzeit
mit der Umgebungsvariable DPKG_DATADIR überschrieben werden. Diese Tabellen enthalten in der ersten Zeile
ein Format-Versions-Pseudofeld, um ihre Version zu kennzeichnen, so dass Auswerteprogramme prüfen können,
ob sie es verstehen. Beispiel: »# Version=1.0«.
/usr/share/dpkg/cputable
Tabelle der bekannten CPU-Namen und Abbildungen auf ihre GNU-Namen. Formatversion 1.0 (seit Dpkg
1.13.2).
/usr/share/dpkg/ostable
Tabelle der bekannten Betriebssystemnamen und Abbildungen auf ihre GNU-Namen. Formatversion 2.0
(seit Dpkg 1.18.11).
/usr/share/dpkg/tupletable
Abbildung zwischen den Debian-Architektur-Tupeln und den Debian-Architekturnamen. Formatversion
1.0 (seit Dpkg 1.18.11).
/usr/share/dpkg/abitable
Tabelle von Debian-Architektur-ABI-Attributs-Außerkraftsetzungen. Formatversion 2.0 (seit Dpkg
1.18.11).
Paketierungsunterstützung
/usr/share/dpkg/architecture.mk
Makefile-Schnipsel, das alle Variablen, die dpkg-architecture ausgibt, korrekt setzt und
exportiert (seit Dpkg 1.16.1).
BEISPIELE
dpkg-buildpackage akzeptiert die -a-Option und gibt dies an dpkg-architecture weiter. Weitere Beispiele:
CC=i386-gnu-gcc dpkg-architecture -c debian/rules build
eval `dpkg-architecture -u`
Überprüfe, ob die aktuelle oder angegebene Host-Architektur identisch zu einer Architektur ist:
dpkg-architecture -elinux-alpha
dpkg-architecture -amips -elinux-mips
Überprüfe, ob die aktuelle oder angegebene Host-Architektur ein Linux-System ist:
dpkg-architecture -ilinux-any
dpkg-architecture -ai386 -ilinux-any
Verwendung in debian/rules
Die Umgebungsvariablen, die von dpkg-architecture gesetzt werden, werden an debian/rules als
Make-Variablen weitergegeben (lesen Sie hierzu die Make-Dokumentation). Allerdings sollten Sie sich nicht
auf diese verlassen, da damit der manuelle Aufruf des Skripts verhindert wird. Stattdessen sollten Sie
sie immer mit dpkg-architecture mit der -q-Option initialisieren. Hier sind einige Beispiele, die auch
zeigen, wie sie die Cross-Kompilierungs-Unterstützung in Ihrem Paket verbessern können:
Ermitteln des GNU-Systemtyps und dessen Weiterleitung an ./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)
Etwas nur für eine bestimmte Architektur erledigen:
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq ($(DEB_HOST_ARCH),alpha)
[…]
endif
oder, falls Sie nur den CPU- oder OS-Typ überprüfen müssen, verwenden Sie die DEB_HOST_ARCH_CPU- oder
DEB_HOST_ARCH_OS-Variablen.
Beachten Sie, dass Sie sich auch auf ein externes Makefile-Schnipsel abstützen können, um alle Variablen,
die dpkg-architecture bereitstellen kann, korrekt zu setzen:
include /usr/share/dpkg/architecture.mk
ifeq ($(DEB_HOST_ARCH),alpha)
[…]
endif
Auf jeden Fall sollten Sie niemals dpkg --print-architecture verwenden, um die Architekturinformationen
während eines Paketbaus zu erhalten.
UMGEBUNG
DPKG_DATADIR
Falls dies gesetzt ist, wird es als Datenverzeichnis von dpkg verwandt, in dem sich die
Architekturtabellen befinden (seit Dpkg 1.14.17). Standardmäßig „/usr/share/dpkg“.
DPKG_COLORS
Setzt den Farbmodus (seit Dpkg 1.18.5). Die derzeit unterstützten Werte sind: auto (Vorgabe),
always und never.
DPKG_NLS
Falls dies gesetzt ist, wird es zur Entscheidung, ob Native Language Support, auch als
Internationalisierung (oder i18n) Unterstützung bekannt, aktiviert wird (seit Dpkg 1.19.0). Die
akzeptierten Werte sind: 0 und 1 (Vorgabe).
BEMERKUNGEN
Alle langen Befehle und Optionennamen sind seit Dpkg 1.17.17 verfügbar.
SIEHE AUCH
dpkg-buildpackage(1).
ÜBERSETZUNG
Die deutsche Übersetzung wurde 2004, 2006-2019 von Helge Kreutzmann <debian@helgefjell.de>, 2007 von
Florian Rehnisch <eixman@gmx.de> und 2008 von Sven Joachim <svenjoac@gmx.de> angefertigt. Diese
Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 2 oder neuer für
die Kopierbedingungen. Es gibt KEINE HAFTUNG.
1.19.7 2022-05-25 dpkg-architecture(1)