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