Rechercher une page de manuel
dpkg-architecture
Langue: de
Version: 2009\-08\-15 (ubuntu - 25/10/10)
Section: 1 (Commandes utilisateur)
Sommaire
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 (Wirt-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_ARCH_BITS
- Die Zeigergröße der Baumaschine in Bits.
- DEB_BUILD_ARCH_ENDIAN
- Die Endianness der Baumaschine (little/big).
- 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-Systemname der Baumaschine.
- 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_ARCH_BITS
- Die Zeigergröße der Host-Maschine in Bits.
- DEB_HOST_ARCH_ENDIAN
- Die Endianness der Host-Maschine (little/big).
- 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.
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 Variablen DEB_*_ARCH_BITS und DEB_*_ARCH_ENDIAN wurden in dpkg-dev 1.15.4 eingeführt. Werden sie in debian/rules verwandt, benötigen sie daher eine Bauabhängigkeit von dpkg-dev (>= 1.15.4).Die DEB_HOST_ARCH_CPU- und DEB_HOST_ARCH_OS-Variablen wurden in dpkg-dev 1.13.2 eingeführt. 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-2010 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.Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre