Provided by: dpkg-dev_1.22.6ubuntu6.1_all bug

NOME

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

RESUMO

       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.

       A arquitectura de compilação é sempre determinada seja ou pela variável DEB_BUILD_ARCH se
       definida (e se --force não for especificada) ou por uma chamada externa ao dpkg(1), e não
       pode ser definida na linha de comandos.

       Você pode especificar a arquitectura da máquina ao fornecer uma ou ambas as opções
       --host-arch e --host-type, caso contrário é usada a variável DEB_HOST_ARCH se definida (e
       não sendo especificado --force). A predefinição é determinada por uma chamada externa ao
       gcc(1), ou o mesmo como a arquitectura de compilação se CC ou gcc estiverem ambos não
       disponíveis. Um de --host-arch e --host-type é suficiente, o valor do outro será definido
       para uma predefinição utilizável. De facto, é muitas vezes melhor apenas especificar um,
       porque dpkg-architecture vai avisa-lo se a sua escolha não corresponder ao predefinido.

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
           Escreve um comando de exportação. Isto pode ser usado para definir as variáveis de
           ambiente usando a shell POSIX ou make eval, dependendo do formato dos resultados.

       -u, --print-unset
           Escreve um comando semelhante ao --print-set mas para limpar o valor de todas as
           variáveis.

       -c, --command command-string
           Executa uma command-string num ambiente que tem todas as variáveis definidas para o
           determinado valor.

           Se a string-de-comando conter meta-caracteres de shell, então será invocada através da
           shell limite do sistema.

       -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
           Define o formato de resultados para --print-set e --print-unset (desde dpkg 1.20.6),
           para ou shell (predefinição) ou 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, ou o que emulador que irá correr
           código para. Isto é apenas necessário quando se compila ferramenta-corrente-cruzada
           (ou emulador), uma que será compilada sobre a arquitectura de compilação, para ser
           corrida na arquitectura anfitriã, e para compilar código (ou correr emulado) 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

       As seguintes variáveis são lidas a partir do ambiente (a menos que --force seja
       especificado) e definidas por dpkg-architecture (veja a secção TERMS para uma descrição do
       esquema de nomeação):

       DEB_BUILD_ARCH
           A arquitectura Debian da máquina de compilação.

       DEB_BUILD_ARCH_ABI
           O nome ABI Debian da máquina de compilação (desde 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
           O nome de CPU de Debian da máquina de compilação (desde 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
           A parte CPU GNU de DEB_BUILD_GNU_TYPE.

       DEB_BUILD_GNU_SYSTEM
           A parte de system GNU de 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
           O nome ABI Debian da máquina anfitriã (desde 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
           O nome de CPU de Debian da máquina anfitriã (desde 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
           A parte CPU GNU de DEB_HOST_GNU_TYPE.

       DEB_HOST_GNU_SYSTEM
           A parte de system GNU de 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
           O nome ABI Debian da máquina alvo (desde 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
           O nome de CPU de Debian da máquina de destino (desde 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
           A parte CPU GNU de DEB_TARGET_GNU_TYPE (desde dpkg 1.17.14).

       DEB_TARGET_GNU_SYSTEM
           A parte de system GNU de DEB_TARGET_GNU_TYPE (desde 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
       inicializa-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 reencaminha-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>.