Provided by: dpkg-dev_1.19.0.5ubuntu2.4_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 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:

       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«.

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-2017    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.