dpkg-architecture - Architektur zum Paketbau setzen und bestimmen
dpkg-architecture [
Option …] [
Befehl]
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.
-
-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.
-
-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
„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)).
- 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 oder dem
Emulator, für den Code ausgeführt wird. Dies wird nur beim
Bau einer Cross-Toolchain (oder einem Emulator) und zum Bau von Code
für die Ziel-Architektur benötigt. Die Cross-Toolchain wird
auf der Bauarchitektur gebaut (oder emuliert ausgeführt) 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
„i386“ lautet. Beispiele: i386-linux-gnu, x86_64-linux-gnu.
Beispielpfade: /lib/powerpc64le-linux-gnu/,
/usr/lib/i386-kfreebsd-gnu/.
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).
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: „# 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).
- /usr/share/dpkg/architecture.mk
- Make-Steuerdateischnipsel, das alle Variablen, die
dpkg-architecture ausgibt, korrekt setzt und exportiert (seit Dpkg
1.16.1).
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
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.
- 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
„/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).
Alle langen Befehle und Optionennamen sind seit Dpkg 1.17.17 verfügbar.
dpkg-buildpackage(1).
Die deutsche Übersetzung wurde 2004, 2006-2023 von Helge Kreutzmann
<
[email protected]>, 2007 von Florian Rehnisch <
[email protected]>
und 2008 von Sven Joachim <
[email protected]> 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.