Provided by: dpkg-dev_1.18.4ubuntu1.7_all
NOME
dpkg-architecture - imposta e determina l'architettura per la compilazione dei pacchetti
SINTASSI
dpkg-architecture [opzione...] [comando]
DESCRIZIONE
dpkg-architecture fornisce una funzionalità per determinare e impostare l'architettura host e di compilazione per la compilazione dei pacchetti. L'architettura di compilazione è sempre determinata da una chiamata esterna a dpkg(1) e non può essere impostata dalla riga di comando. You can specify the host architecture by providing one or both of the options --host-arch and --host-type. The default is determined by an external call to gcc(1), or the same as the build architecture if CC or gcc are both not available. One out of --host-arch and --host-type is sufficient, the value of the other will be set to a usable default. Indeed, it is often better to only specify one, because dpkg-architecture will warn you if your choice does not match the default.
COMANDI
-l, --list Stampa le variabili d'ambiente, una per riga, nel formato VARIABILE=valore. Questa è l'azione predefinita. -e, --equal architettura Controlla l'uguaglianza dell'architettura (a partire da dpkg 1.13.13). Confronta l'architettura Debian ospite attuale o specificata con architettura, per verificare se sono uguali. Questa azione non espande l'espressione jolly per l'architettura. Il comando termina con uno stato di uscita di 0 se corrispondono e 1 altrimenti. -i, --is espressionejolly-architettura Controlla l'identità dell'architettura (a partire da dpkg 1.13.13). Confronta l'architettura Debian ospite attuale o specificata con espressionejolly-architettura dopo aver fatto l'espansione dell'espressione jolly per l'architettura, per verificare se corrispondono. Il comando termina con uno stato di uscita di 0 se corrispondono e 1 altrimenti. -q, --query nome-variabile Stampa il valore di una singola variabile. -s, --print-set Stampa un comando di esportazione. Può essere usata per impostare le variabili d'ambiente usando eval. -u, --print-unset Stampa un comando simile a --print-unset ma per deimpostare tutte le variabili. -c, --command comando Esegue un comando in un ambiente che ha tutte le variabili impostate al valore determinato. -L, --list-known Stampa un elenco di nomi di architettura validi. Eventualmente ristretto da una o più delle opzioni di corrispondenza --match-wildcard, --match-bits o --match-endian (a partire da dpkg 1.17.14). -?, --help Mostra il messaggio sull'uso ed esce. --version Mostra la versione ed esce.
OPZIONI
-a, --host-arch architettura Imposta l'architettura host Debian. -t, --host-type tipo-sistema-gnu Imposta il tipo di sistema GNU ospite. -A, --target-arch architettura Set the target Debian architecture (since dpkg 1.17.14). -T, --target-type tipo-sistema-gnu Set the target GNU system type (since dpkg 1.17.14). -W, --match-wildcard espressionejolly-architettura Limita le architetture elencate da --list-known a quelle che corrispondono alla espressione jolly specificata per l'architettura (a partire da dpkg 1.17.14). -B, --match-bits bit-architettura Limita le architetture elencate da --list-known a quelle con i bit CPU specificati (a partire da dpkg 1.17.14). O 32 o 64. -E, --match-endian endian-architettura Limita le architetture elencate da --list-known a quelle con la modalità endian specificata (a partire da dpkg 1.17.14). O little o big. -f, --force Values set by existing environment variables with the same name as used by the scripts are honored (i.e. used by dpkg-architecture), except if this force flag is present. This allows the user to override a value even when the call to dpkg-architecture is buried in some other script (for example dpkg-buildpackage(1)).
TERMINOLOGIA
macchina di compilazione La macchina usata per creare il pacchetto. macchina ospite La macchina per cui è compilato il pacchetto. macchina di destinazione The machine the compiler is building for. This is only needed when building a cross-toolchain, one that will be built on the build architecture, to be run on the host architecture, and to build code for the target architecture. architettura Debian La stringa dell'architettura Debian che specifica l'albero binario nell'archivio FTP. Esempi: i386, sparc, hurd-i386. Debian architecture wildcard A Debian architecture wildcard is a special architecture string that will match any real architecture being part of it. The general form is <kernel>-<cpu>. Examples: linux-any, any-i386, hurd-any. tipo di sistema GNU An architecture specification string consisting of two parts separated by a hyphen: cpu and system. Examples: i586-linux-gnu, sparc-linux-gnu, i686-gnu, x86_64-netbsd. multiarch triplet The clarified GNU system type, used for filesystem paths. This triplet does not change even when the baseline ISA gets bumped, so that the resulting paths are stable over time. The only current difference with the GNU system type is that the CPU part for i386 based systems is always i386. Examples: i386-linux-gnu, x86_64-linux-gnu. Example paths: /lib/powerpc64le-linux-gnu/, /usr/lib/i386-kfreebsd-gnu/.
VARIABILI
dpkg-architecture imposta le seguenti variabili: DEB_BUILD_ARCH L'architettura Debian della macchina di compilazione. DEB_BUILD_ARCH_OS Il nome di sistema Debian della macchina di compilazione (a partire da dpkg 1.13.2). DEB_BUILD_ARCH_CPU Il nome Debian per la CPU della macchina di compilazione (a partire da dpkg 1.13.2). DEB_BUILD_ARCH_BITS La dimensione del puntatore della macchina di compilazione (in bit; a partire da dpkg 1.15.4). DEB_BUILD_ARCH_ENDIAN La modalità endian della macchina di compilazione (little o big; a partire da dpkg 1.15.4). DEB_BUILD_GNU_CPU La parte CPU di DEB_BUILD_GNU_TYPE. DEB_BUILD_GNU_SYSTEM La parte sistema di DEB_BUILD_GNU_TYPE. DEB_BUILD_GNU_TYPE Il tipo di sistema GNU della macchina di compilazione. DEB_BUILD_MULTIARCH Il tipo di sistema GNU chiarito della macchina di compilazione usato per i percorsi del file system (a partire da dpkg 1.16.0). DEB_HOST_ARCH L'architettura Debian della macchina ospite. DEB_HOST_ARCH_OS Il nome di sistema Debian della macchina ospite (a partire da dpkg 1.13.2). DEB_HOST_ARCH_CPU Il nome Debian per la CPU della macchina host (a partire da dpkg 1.13.2). DEB_HOST_ARCH_BITS La dimensione del puntatore della macchina ospite (in bit; a partire da dpkg 1.15.4). DEB_HOST_ARCH_ENDIAN La modalità endian della macchina ospite (little o big; a partire da dpkg 1.15.4). DEB_HOST_GNU_CPU La parte CPU di DEB_HOST_GNU_TYPE. DEB_HOST_GNU_SYSTEM La parte sistema di DEB_HOST_GNU_TYPE. DEB_HOST_GNU_TYPE Il tipo di sistema GNU della macchina ospite. DEB_HOST_MULTIARCH Il tipo di sistema GNU chiarito della macchina ospite usato per i percorsi del file system (a partire da dpkg 1.16.0). DEB_TARGET_ARCH L'architettura Debian della macchina di destinazione (a partire da dpkg 1.17.14). DEB_TARGET_ARCH_OS Il nome di sistema Debian della macchina di destinazione (a partire da dpkg 1.17.14). DEB_TARGET_ARCH_CPU Il nome Debian per la CPU della macchina di destinazione (a partire da dpkg 1.17.14). DEB_TARGET_ARCH_BITS La dimensione del puntatore della macchina di destinazione (in bit; a partire da dpkg 1.17.14). DEB_TARGET_ARCH_ENDIAN La modalità endian della macchina di destinazione (little o big; a partire da dpkg 1.17.14). DEB_TARGET_GNU_CPU La parte CPU di DEB_TARGET_GNU_TYPE (a partie da dpkg 1.17.14). DEB_TARGET_GNU_SYSTEM La parte sistema di DEB_TARGET_GNU_TYPE (a partire da dpkg 1.17.14). DEB_TARGET_GNU_TYPE Il tipo di sistema GNU della macchina di destinazione (a partire da dpkg 1.17.14). DEB_TARGET_MULTIARCH Il tipo di sistema GNU chiarito della macchina di destinazione usato per i percorsi del file system (a partire da dpkg 1.17.14).
FILE
Tabelle delle architetture Tutti questi file devono essere presenti affinché dpkg-architecture possa funzionare. La loro posizione può essere sovrascritta al momento dell'esecuzione con la variabile d'ambiente DPKG_DATADIR. /usr/share/dpkg/cputable Tabella dei nomi di CPU conosciuti a mappatura al loro nome GNU. /usr/share/dpkg/ostable Tabella dei nomi di sistema operativo conosciuti e mappatura al loro nome GNU. /usr/share/dpkg/triplettable Mappatura delle triplette per architettura Debian e nomi di architettura Debian. /usr/share/dpkg/abitable Table of Debian architecture ABI attribute overrides. Supporto per pacchettizzazione /usr/share/dpkg/architecture.mk Frammento di makefile che imposta ed esporta in modo corretto tutte le variabili prodotte in output da dpkg-architecture (a partire da dpkg 1.16.1).
ESEMPI
dpkg-buildpackage accepts the -a option and passes it to dpkg-architecture. Other examples: CC=i386-gnu-gcc dpkg-architecture -c debian/rules build eval `dpkg-architecture -u` Controlla se l'architettura ospite corrente o specificata è uguale ad un'architettura: dpkg-architecture -elinux-alpha dpkg-architecture -amips -elinux-mips Controlla se l'architettura ospite corrente o specificata è un sistema Linux: dpkg-architecture -ilinux-any dpkg-architecture -ai386 -ilinux-any Uso in debian/rules The environment variables set by dpkg-architecture are passed to debian/rules as make variables (see make documentation). However, you should not rely on them, as this breaks manual invocation of the script. Instead, you should always initialize them using dpkg-architecture with the -q option. Here are some examples, which also show how you can improve the cross compilation support in your package: Recuperare il tipo di sistema GNU e passarlo a ./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) Fare qualcosa solo per un'architettura specifica: DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) ifeq ($(DEB_HOST_ARCH),alpha) [...] endif oppure se è necessario solo controllare il tipo di CPU o sistema operativo, usare le variabili DEB_HOST_ARCH_CPU o DEB_HOST_ARCH_OS. Notare che ci si può anche appoggiare su un frammento di Makefile esterno per impostare correttamente tutte le variabili che possono essere fornite da dpkg-architecture. include /usr/share/dpkg/architecture.mk ifeq ($(DEB_HOST_ARCH),alpha) [...] endif In ogni caso non si dovrebbe mai usare dpkg --print-architecture per ottenere informazioni sull'architettura durante la compilazione di un pacchetto.
NOTE
Tutti i nomi lunghi di comandi e opzioni disponibili solo a partire da dpkg 1.17.17.
VEDERE ANCHE
dpkg-buildpackage(1), dpkg-cross(1).