Provided by: dpkg-dev_1.14.16.6ubuntu3_all bug

NAME

       dpkg-architecture - Architektur zum Paketbau setzen und bestimmen

SYNOPSIS

       dpkg-architecture [Optionen] [Befehle]

BESCHREIBUNG

       dpkg-architecture     stellte     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     Zeige ein zu -s ähnlichen Befehl, nur lösche alle Variablen.

       -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
              Setzt 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_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_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 DEB_HOST_ARCH_CPU- und DEB_HOST_ARCH_OS-Variablen  wurden  erst  in
       einer relativ neuen Version von dpkg-architecture eingeführt (seit Dpkg
       1.13.2), 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

ÜBERSETZUNG

       Die  deutsche  Übersetzung  wurde  2004,  2006,  2007,  2008  von Helge
       Kreutzmann  <debian@helgefjell.de>  und  2007  von   Florian   Rehnisch
       <eixman@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.