Provided by:
dpkg-dev_1.14.20ubuntu6_all 
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_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
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-2008 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.