dpkg-architecture
Section: dpkg suite (1)
Updated: 1970-01-01
Page Index
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 due Variable DEB_BUILD_ARCH (falls
diese gesetzt und --force nicht angegeben ist) oder durch 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
(andernfalls wird die Variable DEB_HOST_ARCH verwandt, falls sie gesetzt
und --force nicht angegeben ist). 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
-
Zeigt die Umgebungsvariablen, eine pro Zeile, in dem Format
VARIABLE=Wert. Dies ist die Standardaktion.
- -e, --equal Architektur
-
Überprüft 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üft 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
-
Zeigt den Wert einer einzelnen Variablen an.
- -s, --print-set
-
Zeigt einen Export-Befehl. Dies kann dazu verwendet werden, um
Umgebungsvariablen mittels der POSIX-Shell oder make eval zu setzen,
abhängig vom Ausgabeformat.
- -u, --print-unset
-
Gibt ähnlich wie --print-set einen Export-Befehl aus, der alle Variablen
löscht.
- -c, --command Befehlszeichenkette
-
Führt eine Befehlszeichenkette in einer Umgebung aus, in der alle
Variablen auf die festgelegten Werte gesetzt sind.
- -L, --list-known
-
Gibt 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
-
Zeigt einen Hinweis zum Aufruf und beendet das Programm.
- --version
-
Gibt die Version aus und beendet das Programm.
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 (seit Dpkg 1.17.14).
- -T, --target-type GNU-Systemtyp
-
Setzt den Ziel-GNU-Systemtyp (seit Dpkg 1.17.14).
- -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-Bytereihenfolge
-
Begrenzt die mit --list-known aufgeführten Architekturen auf solche mit
der angegebenen Bytereihenfolge (seit Dpkg 1.17.14). Entweder little oder
big.
- --print-format Format
-
Setzt das Ausgabeformat für --print-set und --print-unset (seit Dpkg
1.20.6), auf entweder shell (Vorgabe) oder make.
- -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 Bqforce"-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. 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.
- Debian-Architektur
-
Die Debian-Architektur-Zeichenkette, die den binären Baum im FTP-Archiv
spezifiziert. Beispiele: i386, sparc, hurd-i386.
- Debian-Architekturtupel
-
Ein Debian-Architekturtupel ist eine vollqualifizierte Architektur mit allen
Komponenten ausgeschrieben. Dies unterscheidet sich von der
Debian-Architektur zumindest in der Weise, dass das ABI nicht eingebettet
ist. Das aktuelle Tupel hat die Form ABI-Libc-OS-CPU. Beispiele:
base-gnu-linux-amd64, eabihf-musl-linux-arm.
- Debian-Architektur-Platzhalter
-
Ein Debian-Architektur-Platzhalter ist eine spezielle
Architektur-Zeichenkette, die auf jede reale Architektur, die ein Teil davon
ist, passt. Die allgemeine Form ist ein Debian-Architektur-Tupel mit vier
oder weniger Elementen und bei dem mindestens eines any ist. Fehlende
Elemente des Tupels werden implizit als any vorangestellt und daher sind
die folgenden Tupel äquivalent:
-
- any-any-any-any = any
-
- any-any-os-any = os-any
-
- any-libc-any-any = libc-any-any
-
-
Beispiele: linux-any, any-i386, hurd-any, eabi-any-any-arm, musl-any-any.
- GNU-Systemtyp
-
Eine Architekturspezifikationszeichenkette besteht aus zwei, durch einen
Bindestrich getrennten Teilen: CPU und System. Beispiele: i586-linux-gnu,
sparc-linux-gnu, i686-gnu, x86_64-netbsd.
- Multiarch-Tripel
-
Der bereinigte GNU-Systemtyp; wird für Dateipfade verwandt. Dieses Tripel
ändert sich auch nicht, wenn das zugrundeliegende ISA erhöht wird, so dass
die daraus resultierenden Pfade dauerhaft stabil bleiben. Derzeit ist der
einzige Unterschied zum GNU-Sytemtyp, dass der CPU-Anteil für i386-basierte
Systeme immer Bqi386" lautet. Beispiele: i386-linux-gnu,
x86_64-linux-gnu. Beispielpfade: /lib/powerpc64le-linux-gnu/,
/usr/lib/i386-kfreebsd-gnu/.
VARIABLEN
Die folgenden Variablen werden von der Umgebung gelesen (außer
--force
wurde angegeben) und durch
dpkg-architecture gesetzt (siehe den Abschnitt
AUSDRÜCKE für eine Beschreibung des Benennungsschemas):
- DEB_BUILD_ARCH
-
Die Debian-Architektur der Baumaschine.
- DEB_BUILD_ARCH_ABI
-
Der Debian-ABI-Name der Baumaschine. (Seit Dpkg 1.18.11).
- DEB_BUILD_ARCH_LIBC
-
Der Debian-Libc-Name der Baumaschine. (Seit Dpkg 1.18.11).
- 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 Bytereihenfolge der Baumaschine (little/big; seit Dpkg 1.15.4).
- DEB_BUILD_GNU_CPU
-
Der GNU-CPU-Teil von DEB_BUILD_GNU_TYPE.
- DEB_BUILD_GNU_SYSTEM
-
Der GNU-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, der für Dateisystempfade
benutzt wird.
- DEB_HOST_ARCH
-
Die Debian-Architektur der Host-Maschine.
- DEB_HOST_ARCH_ABI
-
Der Debian-ABI-Name der Host-Maschine. (Seit Dpkg 1.18.11).
- DEB_HOST_ARCH_LIBC
-
Der Debian-Libc-Name der Host-Maschine. (Seit Dpkg 1.18.11).
- 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 Bytereihenfolge der Host-Maschine (little/big; seit Dpkg 1.15.4).
- DEB_HOST_GNU_CPU
-
Der GNU-CPU-Teil von DEB_HOST_GNU_TYPE.
- DEB_HOST_GNU_SYSTEM
-
Der GNU-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_ABI
-
Der Debian-ABI-Name der Ziel-Maschine. (Seit Dpkg 1.18.11).
- DEB_TARGET_ARCH_LIBC
-
Der Debian-Libc-Name der Ziel-Maschine. (Seit Dpkg 1.18.11).
- 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 Bytereihenfolge der Ziel-Maschine (little/big; seit Dpkg 1.17.14).
- DEB_TARGET_GNU_CPU
-
Der GNU-CPU-Teil von DEB_TARGET_GNU_TYPE. (Seit Dpkg 1.17.14).
- DEB_TARGET_GNU_SYSTEM
-
Der GNU-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. Diese Tabellen enthalten in der ersten
Zeile ein Format-
Versions-Pseudofeld, um ihre Version zu kennzeichnen, so
dass Auswerteprogramme prüfen können, ob sie es verstehen. Beispiel: Bq#
Version=1.0".
- /usr/share/dpkg/cputable
-
Tabelle der bekannten CPU-Namen und Abbildungen auf ihre
GNU-Namen. Formatversion 1.0 (seit Dpkg 1.13.2).
- /usr/share/dpkg/ostable
-
Tabelle der bekannten Betriebssystemnamen und Abbildungen auf ihre
GNU-Namen. Formatversion 2.0 (seit Dpkg 1.18.11).
- /usr/share/dpkg/tupletable
-
Abbildung zwischen den Debian-Architektur-Tupeln und den
Debian-Architekturnamen. Formatversion 1.0 (seit Dpkg 1.18.11).
- /usr/share/dpkg/abitable
-
Tabelle von Debian-Architektur-ABI-Attributs-Hinwegsetzung. Formatversion
2.0 (seit Dpkg 1.18.11).
Paketierungsunterstützung
- /usr/share/dpkg/architecture.mk
-
Make-Steuerdateischnipsel, das alle Variablen, die dpkg-architecture
ausgibt, korrekt setzt und exportiert (seit Dpkg 1.16.1).
BEISPIELE
dpkg-buildpackage akzeptiert die Option
-a und gibt diese an
dpkg-architecture weiter. Weitere Beispiele:
CC=i386-gnu-gcc dpkg-architecture -c debian/rules build
eval $(dpkg-architecture -u)
Überprüfen, ob die aktuelle oder angegebene Host-Architektur identisch zu
einer Architektur ist:
dpkg-architecture -elinux-alpha
dpkg-architecture -amips -elinux-mips
Überprüfen, 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 mittels
dpkg-architecture mit der Option
-q
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 Variablen DEB_HOST_ARCH_CPU oder DEB_HOST_ARCH_OS.
Um alle Variablen, die dpkg-architecture bereitstellen kann, korrekt zu
setzen, können Sie auch extern ein Make-Steuerdateischnipsel verwenden:
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.
UMGEBUNG
- DPKG_DATADIR
-
Falls dies gesetzt ist, wird es als Datenverzeichnis von dpkg verwandt,
in dem sich die Architekturtabellen befinden (seit Dpkg
1.14.17). Standardmäßig Bq/usr/share/dpkg".
- DPKG_COLORS
-
Setzt den Farbmodus (seit Dpkg 1.18.5). Die derzeit unterstützten Werte
sind: auto (Vorgabe), always und never.
- DPKG_NLS
-
Falls dies gesetzt ist, wird es zur Entscheidung, ob Native Language
Support, auch als Unterstützung für Internationalisierung (oder i18n)
bekannt, aktiviert wird (seit Dpkg 1.19.0). Die akzeptierten Werte sind:
0 und 1 (Vorgabe).
BEMERKUNGEN
Alle langen Befehle und Optionennamen sind seit Dpkg 1.17.17 verfügbar.
SIEHE AUCH
dpkg-buildpackage(1).
ÜBERSETZUNG
Die deutsche Übersetzung wurde 2004, 2006-2020 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.