Provided by: dpkg-dev_1.15.4ubuntu2_all bug

NAME

       dpkg-architecture - Architektur zum Paketbau setzen und bestimmen

ÜBERSICHT

       dpkg-architecture [Optionen] [Befehle]

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 Kommandozeile gesetzt werden.

       Sie können die Host-Architektur (Gast-Architektur) spezifizieren, indem
       Sie eine oder beide der Optionen -a oder -t 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 -a oder -t 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     Zeige die Umgebungsvariablen, eine  pro  Zeile,  in  dem  Format
              VARIABLE=Wert. Dies ist die Standardaktion.

       -eDebian-Architektur
              Überprüfe  auf  Gleichheit der Architekturen. Standardmäßig wird
              Debian-Architektur gegen die aktuelle Debian-Architektur auf dem
              Host    geprüft.    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.

       -iArchitektur-Platzhalter
              Überprüfe    die    Identität    einer    Architektur,     indem
              Architektur-Platzhalter    als    ein    Architektur-Platzhalter
              expandiert und mit der aktuellen  Debian-Architektur  verglichen
              wird.  Der  Befehl endet mit einem Exit-Status von 0, falls eine
              Übereinstimmung gefunden wurde, ansonsten mit 1.

       -qVariablenname
              Zeige den Wert einer einzelnen Variablen an.

       -s     Zeige einen Export-Befehl. Dies kann dazu verwendet  werden,  um
              Umgebungsvariablen mittels eval zu setzen.

       -u     Ähnlich wie -s, gebe einen Export-Befehl aus, der alle Variablen
              löscht.

       -c Befehl
              Führe einen Befehl in einer Umgebung aus, in der alle  Variablen
              auf die festgelegten Werte gesetzt sind.

       -L     Zeige eine Liste von gültigen Architekturnamen.

       --help Zeige den Bedienungshinweis und beende.

       --version
              Gebe die Version aus und beende sich.

OPTIONEN

       -aDebian-Architektur
              Setze die Debian-Architektur.

       -tGNU-Systemtyp
              Setze den GNU-Systemtyp.

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

       Debian-Architektur
           Die   Debian-Architektur-Zeichenkette,  die  den  binären  Baum  im
           FTP-Archiv spezifiziert. Beispiele: i386, sparc, hurd-i386.

       Architektur-Platzhalter
           Ein      Architektur-Platzhalter      ist      eine       spezielle
           Architektur-Zeichenkette,  die  auf jede reale Architektur, die ein
           Teil davon  ist,  passt.  Die  allgemeine  Form  ist  <Kern>-<CPU>.
           Beispiele: linux-any, any-i386, hurd-any.

       GNU-Systemtyp
           Eine   Architektur-Spezifikations-Zeichenkette  besteht  aus  zwei,
           durch  einen  Bindestrich  getrennten  Teilen:  CPU   und   System.
           Beispiele:      i386-linux-gnu,      sparc-linux-gnu,     i386-gnu,
           x86_64-netbsd.

VARIABLEN

       Die folgenden Variablen werden von dpkg-architecture gesetzt:

       DEB_BUILD_ARCH
           Die Debian-Architektur der Baumaschine.

       DEB_BUILD_ARCH_OS
           Der Debian-Systemname der Baumaschine.

       DEB_BUILD_ARCH_CPU
           Der Debian-CPU-Name der Baumaschine.

       DEB_BUILD_ARCH_BITS
           Die Zeigergröße der Baumaschine in Bits.

       DEB_BUILD_ARCH_ENDIAN
           Die Endianness der Baumaschine (little/big).

       DEB_BUILD_GNU_TYPE
           Der GNU-Systemname der Baumaschine.

       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_HOST_ARCH
           Die Debian-Architektur der Host-Maschine.

       DEB_HOST_ARCH_OS
           Der Debian-Systemname der Host-Maschine.

       DEB_HOST_ARCH_CPU
           Der Debian-CPU-Name der Host-Maschine.

       DEB_BUILD_ARCH_BITS
           Die Zeigergröße der Host-Maschine in Bits.

       DEB_BUILD_ARCH_ENDIAN
           Die Endianness der Host-Maschine (little/big).

       DEB_HOST_GNU_TYPE
           Der GNU-Systemtyp der Host-Maschine.

       DEB_HOST_GNU_CPU
           Der CPU-Teil von DEB_HOST_GNU_TYPE.

       DEB_HOST_GNU_SYSTEM
           Der System-Teil von DEB_HOST_GNU_TYPE.

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:

       Anstatt von:

              ARCH=`dpkg --print-architecture`
              configure $(ARCH)-linux

       verwenden Sie bitte das folgende:

              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)

       Anstatt von:

              ARCH=`dpkg --print-architecture`
              ifeq ($(ARCH),alpha)
                ...
              endif

       bitte verwenden Sie:

              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.

       Im Allgemeinen wird der  Aufruf  von  Dpkg  in  der  »rules«-Datei,  um
       Architektur-Informationen    zu    erhalten,   abgelehnt   (falls   Sie
       Rückwärtskompatibilität    bereitstellen    wollen,    siehe    unten).
       Insbesondere  die --print-architecture-Option ist unzuverlässig, da wir
       Debian-Architekturen  haben,  die  nicht   mit   einem   Prozessornamen
       übereinstimmen.

RÜCKWÄRTSKOMPATIBILITÄT

       Die  Variablen DEB_*_ARCH_BITS und DEB_*_ARCH_ENDIAN wurden in dpkg-dev
       1.15.4 eingeführt. Werden sie in debian/rules verwandt,  benötigen  sie
       daher eine Bauabhängigkeit von dpkg-dev (>= 1.15.4).

       Die   DEB_HOST_ARCH_CPU-   und   DEB_HOST_ARCH_OS-Variablen  wurden  in
       dpkg-dev 1.13.2 eingeführt. Vorher tendierten die  debian/rules-Dateien
       dazu,  die Werte der DEB_HOST_GNU_CPU- oder DEB_HOST_GNU_TYPE-Variablen
       zu überprüfen, die aber Änderungen unterlagen.

       Wo debian/rules-Dateien diese Variablen  überprüfen  um  festzustellen,
       wie  oder was zu kompilieren ist, sollten diese aktualisiert werden, um
       die neuen Variablen und  Werte  zu  verwenden.  Sie  möchten  eventuell
       Rückwärtskompatibilität  zu  älteren  Versionen  von Dpkg-dev erhalten,
       indem Sie den folgenden Code verwenden:

              DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null)
              DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null)

              # Berücksichtige die Ausgabe des alten Dpkg-architecture.
              ifeq ($(DEB_HOST_ARCH_CPU),)
                DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
                ifeq ($(DEB_HOST_ARCH_CPU),x86_64)
                  DEB_HOST_ARCH_CPU := amd64
                endif
              endif
              ifeq ($(DEB_HOST_ARCH_OS),)
                DEB_HOST_ARCH_OS := $(subst -gnu,,$(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM))
                ifeq ($(DEB_HOST_ARCH_OS),gnu)
                  DEB_HOST_ARCH_OS := hurd
                endif
              endif

       Und ähnlich für DEB_BUILD_ARCH_CPU und DEB_BUILD_ARCH_OS.

       Falls Sie noch Versionen  von  Dpkg-dev,  die  dpkg-architecture  nicht
       enthielten, unterstützen wollen, erledigt dies folgendes:

              DEB_BUILD_ARCH := $(shell dpkg --print-architecture)
              DEB_BUILD_GNU_CPU := $(patsubst hurd-%,%,$(DEB_BUILD_ARCH))
              ifeq ($(filter-out hurd-%,$(DEB_BUILD_ARCH)),)
                DEB_BUILD_GNU_SYSTEM := gnu
              else
                DEB_BUILD_GNU_SYSTEM := linux-gnu
              endif
              DEB_BUILD_GNU_TYPE=$(DEB_BUILD_GNU_CPU)-$(DEB_BUILD_GNU_SYSTEM)

              DEB_HOST_ARCH := $(DEB_BUILD_ARCH)
              DEB_HOST_GNU_CPU := $(DEB_BUILD_GNU_CPU)
              DEB_HOST_GNU_SYSTEM := $(DEB_BUILD_GNU_SYSTEM)
              DEB_HOST_GNU_TYPE := $(DEB_BUILD_GNU_TYPE)

       Setzen    Sie    eine   Untermenge   dieser   Zeilen   oben   in   Ihre
       debian/rules-Datei; diese  Standardwerte  werden  überschrieben,  falls
       Dpkg-architecture verwendet wird.

       Sie  benötigen  nicht  den  ganzen  Satz. Wählen Sie einen konsistenten
       Satz, der nur die Werte enthält, die Sie in der rules-Datei  verwenden.
       Falls Sie beispielsweise nur die Host-Debian-Architektur benötigen, ist
       »DEB_HOST_ARCH=`dpkg --print-architecture ausreichend (dies ist in  der
       Tat die Debian-Architektur der Baumaschine, aber denken Sie daran, dass
       wir  nur  zur  »natürlichen«  Kompilierung   rückwärtskompatibel   sein
       wollen).

       Die  -e-  und  -i-Optionen  wurden  erst in relativ neuen Versionen von
       dpkg-architecture eingeführt (seit Dpkg 1.13.13).

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  eine Architektur identisch zu der aktuellen Architektur
       oder einer übergebenen ist:

              dpkg-architecture -elinux-alpha

              dpkg-architecture -amips -elinux-mips

       Überprüfe, ob die aktuelle oder  eine  mit  -a  übergebene  Architektur
       Linux-Systeme sind:

              dpkg-architecture -ilinux-any

              dpkg-architecture -ai386 -ilinux-any

DATEIEN

       Alle  diese  Dateien  müssen  vorhanden  sein,  damit dpkg-architecture
       funktioniert. Ihr Ort  kann  zur  Laufzeit  mit  der  Umgebungsvariable
       DPKG_DATADIR überschrieben werden.

       /usr/share/dpkg/cputable
              Tabelle   der  bekannten  CPU-Namen  und  Abbildungen  auf  ihre
              GNU-Namen.

       /usr/share/dpkg/ostable
              Tabelle der bekannten Betriebssystemnamen  und  Abbildungen  auf
              ihre GNU-Namen.

       /usr/share/dpkg/triplettable
              Abbildung  zwischen  den  Debian-Architektur-Tripletts  und  den
              Debian-Architekturnamen.

ÜBERSETZUNG

       Die deutsche Übersetzung wurde 2004,  2006-2009  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.

SIEHE AUCH

       dpkg-buildpackage(1), dpkg-cross(1).

AUTOR

       dpkg-architecture  und  diese  Handbuchseite  wurden  ursprünglich  von
       Marcus Brinkmann <brinkmd@debian.org> geschrieben.