Provided by: dpkg-dev_1.22.18ubuntu3_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)
           The machine the compiler is building for, or the emulator will run code for.   This  is  only  needed
           when  building  a cross-toolchain (or emulator), one that will be built on the build architecture, to
           be run on the host architecture, and that itself will build (or run emulated)  code  for  the  target
           architecture.

       Arquitectura Debian
           The Debian architecture string, used in binary packages, which specifies the binary tree in a package
           repository.

           Examples: i386, sparc, hurd-i386.

       Tuple de arquitectura Debian
           A  Debian architecture tuple is the fully qualified architecture with all its components spelled out.
           This differs with Debian architectures in that at least the cpu component does  not  embed  the  abi.
           The current tuple has the form abi-libc-os-cpu.

           Examples: 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
           An architecture specification string consisting of two parts separated by a hyphen: CPU and system.

           The CPU part never contains a hyphen, while the system part might itself contain a hyphen to separate
           a  kernel  from  its general ABI, where the general ABI might contain both runtime (such as libc) and
           executable ABI specifiers joined without a hyphen.

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

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.

           Note: If you are not building tools that need to run during the build, these  are  probably  not  the
           variables you are looking for.  Please see "TERMS" section for the meanings of these terms.

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

           Note:  If  you are not building cross-toolchains (or emulators), these are probably not the variables
           you are looking for.  Please see "TERMS" section for the meanings of these terms.

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

        dpkg-architecture -ariscv64 -elinux-riscv64

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

        dpkg-architecture -ilinux-any

        dpkg-architecture -aamd64 -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),arm64)
          [...]
        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),arm64)
          [...]
        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>.

1.22.18                                            2025-04-28                               dpkg-architecture(1)