Provided by: dpkg-dev_1.22.18ubuntu3_all bug

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 due Variable DEB_BUILD_ARCH (falls diese gesetzt und --force nicht
       angegeben ist) oder durch 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 (andernfalls wird die Variable DEB_HOST_ARCH verwandt, falls sie
       gesetzt und --force nicht angegeben ist). 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
           Zeigt   die   Umgebungsvariablen,  eine  pro  Zeile,  in  dem  Format  VARIABLE=Wert.  Dies  ist  die
           Standardaktion.

       -e, --equal Architektur
           Überprüft 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üft 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
           Zeigt den Wert einer einzelnen Variablen an.

       -s, --print-set
           Zeigt  einen Export-Befehl. Dies kann dazu verwendet werden, um Umgebungsvariablen mittels der POSIX-
           Shell oder make eval zu setzen, abhängig vom Ausgabeformat.

       -u, --print-unset
           Gibt ähnlich wie --print-set einen Export-Befehl aus, der alle Variablen löscht.

       -c, --command Befehlszeichenkette
           Führt eine Befehlszeichenkette in einer Umgebung aus, in der  alle  Variablen  auf  die  festgelegten
           Werte gesetzt sind.

           Falls  die Befehlszeichenkette Shell-Metazeichen enthält, dann wird sie durch die System-Bourne-Shell
           aufgerufen.

       -L, --list-known
           Gibt 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
           Zeigt einen Hinweis zum Aufruf und beendet das Programm.

       --version
           Gibt die Version aus und beendet das Programm.

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-Bytereihenfolge
           Begrenzt  die  mit  --list-known  aufgeführten  Architekturen  auf   solche   mit   der   angegebenen
           Bytereihenfolge (seit Dpkg 1.17.14). Entweder little oder big.

       --print-format Format
           Setzt  das  Ausgabeformat  für  --print-set  und --print-unset (seit Dpkg 1.20.6), auf entweder shell
           (Vorgabe) oder make.

       -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 oder dem Emulator, für den Code ausgeführt wird. Dies wird
           nur beim Bau einer Cross-Toolchain (oder  einem  Emulator)  und  zum  Bau  von  Code  für  die  Ziel-
           Architektur  benötigt.  Die  Cross-Toolchain  wird  auf  der  Bauarchitektur  gebaut  (oder  emuliert
           ausgeführt) und läuft dann auf der Host-Architektur und baut (oder emuliert) dann selbst Code für die
           Ziel-Architektur.

       Debian-Architektur
           Die in Binärpaketen verwandte Debian-Architektur-Zeichenkette, die den binären Baum in  einem  Paket-
           Depot 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 zumindest 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  Architekturspezifikationszeichenkette  besteht  aus  zwei,  durch  einen Bindestrich getrennten
           Teilen: CPU und System.

           Der CPU-Anteil  enthält  niemals  einen  Bindestrich,  während  der  Systemanteil  einen  Bindestrich
           enthalten  könnte,  um  einen  Kernel von seiner allgemeinen ABI zu trennen, wobei die allgemeine ABI
           sowohl  Laufzeit-  (wie  Libc)  als  auch  Ausführungs-ABI-Kennzeichner  enthalten  kann,  die   ohne
           Bindestrich aneinandergefügt sind.

           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 der Umgebung gelesen (außer --force wurde angegeben) und durch dpkg-
       architecture gesetzt (siehe den Abschnitt AUSDRÜCKE für eine Beschreibung des Benennungsschemas):

       DEB_BUILD_ARCH
           Die Debian-Architektur der Baumaschine.

           Hinweis: Falls Sie kein Werkzeug bauen, das während  des  Baus  ausgeführt  werden  muss,  sind  dies
           wahrscheinlich  nicht  die  Variablen,  die  Sie  suchen. Lesen Sie den Abschnitt "AUSDRÜCKE" für die
           Bedeutung dieser Ausdrücke.

       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 Bytereihenfolge der Baumaschine (little/big; seit Dpkg 1.15.4).

       DEB_BUILD_GNU_CPU
           Der GNU-CPU-Teil von DEB_BUILD_GNU_TYPE.

       DEB_BUILD_GNU_SYSTEM
           Der GNU-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, der für Dateisystempfade benutzt wird.

       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 Bytereihenfolge der Host-Maschine (little/big; seit Dpkg 1.15.4).

       DEB_HOST_GNU_CPU
           Der GNU-CPU-Teil von DEB_HOST_GNU_TYPE.

       DEB_HOST_GNU_SYSTEM
           Der GNU-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).

           Hinweis:  Falls  keine  keine  Cross-Werkzeugketten (oder Emulatoren) bauen, sind dies wahrscheinlich
           nicht die Variablen, die Sie suchen. Bitte lesen Sie den  Abschnitt  "AUSDRÜCKE"  für  die  Bedeutung
           dieser Ausdrücke.

       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 Bytereihenfolge der Ziel-Maschine (little/big; seit Dpkg 1.17.14).

       DEB_TARGET_GNU_CPU
           Der GNU-CPU-Teil von DEB_TARGET_GNU_TYPE. (Seit Dpkg 1.17.14).

       DEB_TARGET_GNU_SYSTEM
           Der GNU-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-Hinwegsetzung. Formatversion 2.0 (seit Dpkg 1.18.11).

   Paketierungsunterstützung
       /usr/share/dpkg/architecture.mk
           Make-Steuerdateischnipsel, das alle Variablen,  die  dpkg-architecture  ausgibt,  korrekt  setzt  und
           exportiert (seit Dpkg 1.16.1).

BEISPIELE

       dpkg-buildpackage akzeptiert die Option -a und gibt diese an dpkg-architecture weiter. Weitere Beispiele:

        CC=i386-gnu-gcc dpkg-architecture -c debian/rules build

        eval $(dpkg-architecture -u)

       Überprüfen, ob die aktuelle oder angegebene Host-Architektur identisch zu einer Architektur ist:

        dpkg-architecture -elinux-arm64

        dpkg-architecture -ariscv64 -elinux-riscv64

       Überprüfen, ob die aktuelle oder angegebene Host-Architektur ein Linux-System ist:

        dpkg-architecture -ilinux-any

        dpkg-architecture -aamd64 -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 mittels dpkg-architecture mit der Option -q 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),arm64)
          […]
        endif

       oder, falls Sie nur den CPU- oder OS-Typ überprüfen müssen, verwenden Sie die Variablen DEB_HOST_ARCH_CPU
       oder DEB_HOST_ARCH_OS.

       Um  alle  Variablen,  die dpkg-architecture bereitstellen kann, korrekt zu setzen, können Sie auch extern
       ein Make-Steuerdateischnipsel verwenden:

        include /usr/share/dpkg/architecture.mk

        ifeq ($(DEB_HOST_ARCH),arm64)
          […]
        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 Unterstützung
           für Internationalisierung (oder i18n) 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-2025 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.22.18                                            2025-04-28                               dpkg-architecture(1)