Scroll to navigation

dpkg-architecture(1) dpkg-Hilfsprogramme dpkg-architecture(1)

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 Befehl
Führe einen Befehl 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. 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.
-T, --target-type GNU-Systemtyp
Setzt den Ziel-GNU-Systemtyp.
-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.
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. (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_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_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.
/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.

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.

BEMERKUNGEN

Alle langen Befehle und Optionennamen sind seit Dpkg 1.17.17 verfügbar.

ÜBERSETZUNG

Die deutsche Übersetzung wurde 2004, 2006-2016 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).
2013-03-28 Debian-Projekt