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>.