dpkg-architecture

Section: dpkg suite (1)
Updated: 1970-01-01
Page Index
 

NOME

dpkg-architecture - define e determina a arquitectura para compilação de pacotes  

SINOPSE

dpkg-architecture [option...] [command]  

DESCRIÇÃO

dpkg-architecture disponibiliza uma habilidade para determinar e definir a arquitectura de compilação e da máquina para compilação de pacotes.

The build architecture is always determined by either the DEB_BUILD_ARCH variable if set (and --force not being specified) or by an external call to dpkg(1), and cannot be set at the command line.

You can specify the host architecture by providing one or both of the options --host-arch and --host-type, otherwise the DEB_HOST_ARCH variable is used if set (and --force not being specified). 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.  

COMANDOS

-l, --list
Escreve as variáveis de ambiente, uma em cada linha, no formato VARIÁVEL=valor. Esta é a acção predefinida.
-e, --equal architecture
Verifica a igualdade da arquitectura (desde dpkg 1.13.13). Compara a actual ou a arquitectura de maquina Debian especificada com architecture, para verificar se são iguais. Esta acção não irá expandir as wildcards de arquitectura. O comando termina com um estado de saída 0 de corresponderem, 1 se não corresponderem.
-i, --is architecture-wildcard
Verifica a identidade da arquitectura (desde dpkg 1.13.13). Compara a actual ou a arquitectura de máquina Debian especificada com architecture-wildcard após a ter expandido como uma wildcard de arquitectura, para verificar se correspondem. O comando termina com estado de saída 0 se corresponderem, 1 se não corresponderem.
-q, --query variable-name
Escreve o valor de uma variável única.
-s, --print-set
Print an export command. This can be used to set the environment variables using the POSIX shell or make eval, depending on the output format.
-u, --print-unset
Print a similar command to --print-set but to unset all variables.
-c, --command command-string
Executa uma command-string num ambiente que tem todas as variáveis definidas para o determinado valor.
-L, --list-known
Escreve uma lista de nomes de arquitecturas válidos. Possivelmente restringidos por uma ou mais das opções de correspondência --match-wildcard, --match-bits ou --match-endian (desde dpkg 1.17.14).
-?, --help
Mostra a mensagem de utilização e termina.
--version
Mostra a versão e termina.
 

OPÇÕES

-a, --host-arch architecture
Define a arquitectura da máquina Debian
-t, --host-type gnu-system-type
Define o tipo de sistema GNU da máquina.
-A, --target-arch architecture
Define a arquitectura Debian de destino (desde dpkg 1.17.14).
-T, --target-type gnu-system-type
Define o tipo de sistema GNU do destino (desde dpkg 1.17.14).
-W, --match-wildcard architecture-wildcard
Restringe as arquitectura listadas por --list-known a aquelas que correspondem à wildcard de arquitectura especificada (desde dpkg 1.17.14).
-B, --match-bits architecture-bits
Restringe as arquitectura listadas por --list-known a aquelas com os bits de CPU especificados (desde dpkg 1.17.14). Seja 32 ou 64.
-E, --match-endian architecture-endianness
Restringe as arquitectura listadas por --list-known a aquelas com a categoria endian especificada (desde dpkg 1.17.14). Seja little ou big.
--print-format format
Sets the output format for --print-set and --print-unset (since dpkg 1.20.6), to either shell (default) or make.
-f, --force
Os valores definidos pelas variáveis de ambiente existentes com os mesmos nomes usados como usados pelos scripts são respeitados (isto é, usados por dpkg-architecture), excepto se esta bandeira de forçar estiver presente. Isto permite ao utilizador sobrepor um valor mesmo quando a chamada a dpkg-architecture está enterrada em algum outro script (por exemplo dpkg-buildpackage(1)).
 

TERMOS

máquina de compilação
A máquina onde o pacote é compilado.
máquina anfitriã
A máquina para onde o pacote é compilado.
máquina destino (alvo)
A maquina para a qual o compilador foi construído. Isto é apenas necessário quando se compila -ferramenta-corrente-cruzada, uma que será compilada sobre a na arquitectura de compilação, para ser corrida na arquitectura anfitriã, e para compilar código para a arquitectura alvo.
Arquitectura Debian
A string de arquitectura Debian, a qual especifica a árvore binária no arquivo FTP. Exemplos: i386, sparc, hurd-i386.
Tuple de arquitectura Debian
Um tuple de arquitectura Debian é a arquitectura totalmente qualificada com todos os seus componentes soletrados. Isto difere das arquitecturas Debian em que pelo menos o componente cpu não trás embutido o abi. O tuple actual tem o formato abi-libc-os-cpu. Exemplos: base-gnu-linux-amd64, eabihf-musl-linux-arm.
Wildcard de arquitectura Debian
Um wildcard de arquitectura Debian é uma string especial de arquitectura que irá corresponder a qualquer arquitectura real que faça parte dela. O formato geral é um tuple de arquitectura Debian com quatro ou menos elementos, e com pelo menos um deles a ser any. Elementos em falta no tuple são prefixados implicitamente como any, e assim os seguintes pares são equivalentes:
any-any-any-any = any
any-any-os-any = os-any
any-libc-any-any = libc-any-any

Exemplos: linux-any, any-i386, hurd-any, eabi-any-any-arm, musl-any-any.

Tipo de sistema GNU
Uma string de especificação de arquitectura consiste de duas partes separadas por um hífen: cpu e sistema. Exemplos: i586-linux-gnu, sparc-linux-gnu, i686-gnu, x86_64-netbsd.
multiarch triplet
O tipo de sistema GNU clarificado, usado para caminhos do sistema de ficheiros. Este triplet não altera mesmo quando a linha base ISA entra em colisão, para que os caminhos resultantes fiquem estáveis com o tempo. A única diferença actual com o tipo de sistema GNU é que a parte de CPU para os sistemas baseados em i386 é sempre i386. Exemplos: i386-linux-gnu, x86_64-linux-gnu. Exemplos de caminhos: /lib/powerpc64le-linux-gnu/, /usr/lib/i386-kfreebsd-gnu/.
 

VARIÁVEIS

The following variables are read from the environment (unless --force has been specified) and set by dpkg-architecture (see the TERMS section for a description of the naming scheme):
DEB_BUILD_ARCH
A arquitectura Debian da máquina de compilação.
DEB_BUILD_ARCH_ABI
The Debian ABI name of the build machine (since dpkg 1.18.11).
DEB_BUILD_ARCH_LIBC
O nome libc Debian da máquina de compilação (desde dpkg 1.18.11).
DEB_BUILD_ARCH_OS
O nome de sistema Debian da máquina de compilação (desde dpkg 1.13.2).
DEB_BUILD_ARCH_CPU
The Debian CPU name of the build machine (since dpkg 1.13.2).
DEB_BUILD_ARCH_BITS
O tamanho do ponteiro da máquina de compilação (em bits, desde dpkg 1.15.4).
DEB_BUILD_ARCH_ENDIAN
A classe endian da máquina de compilação (ittle / big; desde dpkg 1.15.4).
DEB_BUILD_GNU_CPU
The GNU CPU part of DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_SYSTEM
The GNU system part of DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_TYPE
O tipo de sistema GNU da máquina de compilação.
DEB_BUILD_MULTIARCH
O tipo de sistema GNU clarificado da máquina de compilação, usado para caminhos do sistema de ficheiros (desde dpkg 1.16.0).
DEB_HOST_ARCH
A arquitectura Debian da máquina anfitriã.
DEB_HOST_ARCH_ABI
The Debian ABI name of the host machine (since dpkg 1.18.11).
DEB_HOST_ARCH_LIBC
O nome libc Debian da máquina anfitriã (desde dpkg 1.18.11).
DEB_HOST_ARCH_OS
O nome de sistema Debian da máquina anfitriã (desde dpkg 1.13.2).
DEB_HOST_ARCH_CPU
The Debian CPU name of the host machine (since dpkg 1.13.2).
DEB_HOST_ARCH_BITS
O tamanho do ponteiro da máquina anfitriã (em bits, desde dpkg 1.15.4).
DEB_HOST_ARCH_ENDIAN
A classe endian da máquina anfitriã (ittle / big; desde dpkg 1.15.4).
DEB_HOST_GNU_CPU
The GNU CPU part of DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_SYSTEM
The GNU system part of DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_TYPE
O tipo de sistema GNU da máquina anfitriã.
DEB_HOST_MULTIARCH
O tipo de sistema GNU clarificado da máquina anfitriã, usado para caminhos do sistema de ficheiros (desde dpkg 1.16.0).
DEB_TARGET_ARCH
A arquitectura Debian da máquina de destino (desde dpkg 1.17.14).
DEB_TARGET_ARCH_ABI
The Debian ABI name of the target machine (since dpkg 1.18.11).
DEB_TARGET_ARCH_LIBC
O nome libc Debian da máquina alvo (desde dpkg 1.18.11).
DEB_TARGET_ARCH_OS
O nome de sistema Debian da máquina de destino (desde dpkg 1.17.14).
DEB_TARGET_ARCH_CPU
The Debian CPU name of the target machine (since dpkg 1.17.14).
DEB_TARGET_ARCH_BITS
O tamanho do ponteiro da máquina de destino (em bits, desde dpkg 1.17.14).
DEB_TARGET_ARCH_ENDIAN
A classe endian da máquina de destino (ittle / big; desde dpkg 1.17.14).
DEB_TARGET_GNU_CPU
The GNU CPU part of DEB_TARGET_GNU_TYPE (since dpkg 1.17.14).
DEB_TARGET_GNU_SYSTEM
The GNU system part of DEB_TARGET_GNU_TYPE (since dpkg 1.17.14).
DEB_TARGET_GNU_TYPE
O tipo de sistema GNU da máquina de destino (desde dpkg 1.17.14).
DEB_TARGET_MULTIARCH
O tipo de sistema GNU clarificado da máquina de destino, usado para caminhos do sistema de ficheiros (desde dpkg 1.17.14).
 

FICHEIROS

 

Tabelas de arquitecturas

Todos estes ficheiros têm de estar presentes para o dpkg-architecture funcionar. A sua localização pode ser sobreposta durante o funcionamento com a variável de ambiente DPKG_DATADIR. Estas tabelas contêm um pseudo-campo Version de formato na sua primeira linha para marcar o seu formato, para que os analisadores possam verificar se o compreendem, tal como ``# Version=1.0''.
/usr/share/dpkg/cputable
Tabela de nomes de CPU conhecidas e o mapear delas para o seu nome GNU. Formato versão 1.0 (desde dpkg 1.13.2).
/usr/share/dpkg/ostable
Tabela de nomes de sistemas operativos conhecidos e o mapear deles para o seu nome GNU. Formato versão 2.0 (desde dpkg 1.18.11).
/usr/share/dpkg/tupletable
Mapeamento entre tuples de arquitectura Debian e nomes de arquitectura Debian. Versão de formato 1.0 (desde dpkg 1.18.11).
/usr/share/dpkg/abitable
Tabela de sobreposições de atributos ABI de arquitectura Debian. Versão de formato 2.0 (desde dpkg 1.18.11).
 

Suporte a empacotamento

/usr/share/dpkg/architecture.mk
Fragmento do Makefile cuja propriedade define e exporta todas as variáveis que o dpkg-architecture gera como resultado (desde dpkg 1.16.1).
 

EXEMPLOS

dpkg-buildpackage aceita a opção -a e passa-a para dpkg-architecture. Outros exemplos:

 CC=i386-gnu-gcc dpkg-architecture -c debian/rules build

 eval $(dpkg-architecture -u)

Verifica se a arquitectura actual ou da máquina especificada é igual a uma arquitectura:

 dpkg-architecture -elinux-alpha

 dpkg-architecture -amips -elinux-mips

Verifica se a arquitectura actual ou da máquina especificada é um sistema Linux.

 dpkg-architecture -ilinux-any

 dpkg-architecture -ai386 -ilinux-any

 

Utilização em debian/rules

As variáveis de ambiente definidas pelo dpkg-architecture são passadas para debian/rules como variáveis do make (veja a documentação do make). No entanto, você não deve confiar nelas, porque prejudicam a invocação manual do script. Em vez disso, você deve sempre inicializá-las usando dpkg-architecture com a opção -q. Aqui estão alguns exemplos, que também mostram como você pode melhorar o suporte a compilação cruzada no seu pacote:

Obter o tipo de sistema GNU e reencaminhá-lo para ./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)

Fazer algo apenas para uma arquitectura específica:

 DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

 ifeq ($(DEB_HOST_ARCH),alpha)
   [...]
 endif

ou se você apenas precisar de verificar o tipo de CPU ou SO, use as variáveis DEB_HOST_ARCH_CPU ou DEB_HOST_ARCH_OS

Note que você também pode confiar num retalho externo do Makefile para definir apropriadamente todas as variáveis que o dpkg-architecture pode fornecer.

 include /usr/share/dpkg/architecture.mk

 ifeq ($(DEB_HOST_ARCH),alpha)
   [...]
 endif

Em qualquer dos casos, você nunca deverá usar o dpkg --print-architecture para obter informação de arquitectura durante uma compilação de pacote.  

AMBIENTE

DPKG_DATADIR
Se definida, será usada como o directório de dados do dpkg, onde as tabelas de arquitectura estão localizadas (desde 1.14.17). A predefinição é «/usr/share/dpkg».
DPKG_COLORS
Define o modo de cor (desde dpkg 1.18.5). Os valores actualmente aceites são: auto (predefinido), always e never.
DPKG_NLS
Se definida, será usada para decidir se deve activar o Suporte a Linguagem Nativa. Também como conhecido como suporte de internacionalização (ou i18n) (desde dpkg 1.19.0). Os valores aceites são 0 e 1 (predefinição).
 

NOTAS

Todos comandos e nomes de opções longos disponíveis apenas desde dpkg 1.17.17.  

VEJA TAMBÉM

dpkg-buildpackage(1).  

TRADUÇÃO

Américo Monteiro

Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro <a_monteiro@gmx.com>.


 

Index

NOME
SINOPSE
DESCRIÇÃO
COMANDOS
OPÇÕES
TERMOS
VARIÁVEIS
FICHEIROS
Tabelas de arquitecturas
Suporte a empacotamento
EXEMPLOS
Utilização em debian/rules
AMBIENTE
NOTAS
VEJA TAMBÉM
TRADUÇÃO