dpkg-architecture(1)

NAMN
dpkg-architecture - ställ in och bestäm arkitektur för paket som byggs

SYNOPS
dpkg-architecture [flagga...] [åtgärd]

BESKRIVNING
dpkg-architecture innehåller en funktion för att bestämma och ställa in bygg- och värdarkitekturerna för att bygga paket.

Byggarkitekturen bestäms alltid av ett externt anrop till dpkg(1) och kan inte ställas in på kommandoraden.

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.

KOMMANDON

-l, --list
    Skriv miljövariabler, en per rad, på formatet VARIABEL=värde. Detta är förvald åtgärd.

-e, --equal arkitektur
    Kontrollera arkitektur för likhet (sedan dpkg 1.13.13). Det jämför den aktuella eller angivna Debian-värdarkitekturen mot arkitektur, för att se om de är lika. Åtgärden expanderar inte jokertecken i arkitekturer. Kommandot avslutar med status 0 om det är en träff, 1 om det inte är en träff.

-i, --is arkitektur-jokertecken
    Kontrollera arkitekturens identitet (sedan dpkg 1.13.13). Det jämför den aktuella eller angivna Debian-värdarkitekturen mot arkitektur-jokertecken efter att ha expanderat det som ett arkitektur-jokertecken, för att se om de är lika. Kommandot avslutar med status 0 om det är en träff, 1 om det inte är en träff.

-q, --query variabelnamn
    Skriv värdet på en enkel variabel.

-s, --print-set
    Visar ett exportkommando. Detta kan användas för att sätta miljövariabler med eval.

-u, --print-unset
    Visar ett kommando liknande --print-unset men för att ta bort värdet för alla variabler.

-c, --command kommando
    Exekvera ett kommando i en miljö som har alla variabler satta till det bestämda värdet.

-L, --list-known
    Visar en lista över giltiga arkitekturnamn. Möjligen begränsad av en eller flera av träffvalen --match-wildcard, --match-bits eller --match-endian (sedan dpkg 1.17.14).

-?, --help
    Visar hjälpskärm och avslutar.

--version
    Visar version och avslutar.

FLAGGOR

-a, --host-arch arkitektur
    Sätter värd-Debianarkitekturen.

-t, --host-type gnu-system-typ
    Sätter värd-GNU-systemtypen.

-A, --target-arch arkitektur
    Set the target Debian architecture (since dpkg 1.17.14). 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.

-T, --target-type gnu-system-typ
    Set the target GNU system type (since dpkg 1.17.14).

-W, --match-wildcard arkitektur-jokertecken
    Begränsa arkitekturerna som visas med --list-known till en som motsvarar det angivna arkitektur-jokertecknet (sedan dpkg 1.17.14).

-B, --match-bits arkitektur-bitar
    Begränsa arkitekturerna som visas med --list-known till en med angivet antal CPU-bitar (sedan dpkg 1.17.14). Antingen 32 eller 64.

-E, --match-endian architecture-endian
    Begränsa arkitekturerna som visas med --list-known till en som har angiven endian (sedan dpkg 1.17.14). Antingen little (liten endian) eller big (stor endian).

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

TERMINOLOGI

byggmaskin
    Maskinen paketet byggs på.

värdmaskin
    Maskinen paketet byggs för.

målmaskin
    Maskinen kompilatorn bygger för.

Debianarkitektur
    Debianarkitektursträngen, vilken anger binärträdet i FTP-arkivet. Exempel: 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.

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

VARIABLER
Följande variabler sätts av dpkg-architecture:

DEB_BUILD_ARCH
    Debianarkitekturen för byggmaskinen.

DEB_BUILD_ARCH_OS
    Debiansystemnamnet på byggmaskinen (sedan dpkg 1.13.2).

DEB_BUILD_ARCH_CPU
    Debian-processornamnet för byggmaskinen (sedan dpkg 1.13.).

DEB_BUILD_ARCH_BITS
    Pekarstorleken för byggmaskinen (i bitar; sedan dpkg 1.15.4).

DEB_BUILD_ARCH_ENDIAN
    Endian för byggmaskinen (little / big; sedan dpkg 1.15.4).

DEB_BUILD_GNU_CPU
    CPU-delen av DEB_BUILD_GNU_TYPE.

DEB_BUILD_GNU_SYSTEM
    Systemdelen av DEB_BUILD_GNU_TYPE.

DEB_BUILD_GNU_TYPE
    GNU-systemtypen för byggmaskinen.

DEB_BUILD_MULTIARCH
    Den förtydligade GNU-systemtypen för byggmaskinen, används för sökvägar i filsystemet.

DEB_HOST_ARCH
    Debianarkitekturen för värdmaskinen.

DEB_HOST_ARCH_OS
    Debiansystemnamnet för värdmaskinen (sedan dpkg 1.13.2).

DEB_HOST_ARCH_CPU
    Debian-processornamnet för värdmaskinen (sedan dpkg 1.13.2).

DEB_HOST_ARCH_BITS
    Pekarstorleken för värdmaskinen (i bitar; sedan dpkg 1.15.4).

DEB_HOST_ARCH_ENDIAN
    Endian för värdmaskinen (little / big; sedan dpkg 1.15.4).

DEB_HOST_GNU_CPU
    CPU-delen av DEB_HOST_GNU_TYPE.

DEB_HOST_GNU_SYSTEM
    Systemdelen av DEB_HOST_GNU_TYPE.

DEB_HOST_GNU_TYPE
    GNU-systemtypen för värdmaskinen.

DEB_HOST_MULTIARCH
    Den förtydligade GNU-systemtypen för värdmaskinen, används för sökvägar i filsystemet.

DEB_TARGET_ARCH
    Debianarkitekturen för målmaskinen (sedan dpkg 1.17.14).

DEB_TARGET_ARCH_OS
    Debiansystemnamnet för målmaskinen (sedan dpkg 1.17.14).

DEB_TARGET_ARCH_CPU
    Debian-processornamnet för målmaskinen (sedan dpkg 1.17.14).

DEB_TARGET_ARCH_BITS
    Pekarstorleken för målmaskinen (i bitar; sedan dpkg 1.17.14).

DEB_TARGET_ARCH_ENDIAN
    Endian för målmaskinen (little / big; sedan dpkg 1.17.14).

DEB_TARGET_GNU_CPU
    CPU-delen av DEB_TARGET_GNU_TYPE (sedan dpkg 1.17.14).

DEB_TARGET_GNU_SYSTEM
    Systemdelen av DEB_TARGET_GNU_TYPE (sedan dpkg 1.17.14).

DEB_TARGET_GNU_TYPE
    GNU-systemnamnet för målmaskinen (sedan dpkg 1.17.14).

DEB_TARGET_MULTIARCH
    Den förtydligade GNU-systemtypen för målmaskinen, används för sökvägar i filsystemet (sedan dpkg 1.17.14).

FILER

  Arkitekturtabeller
Alla dessa filer måste finnas för att dpkg-architecture måste finnas. Deras placering kan överstyras vid körning med miljövariabeln DPKG_DATADIR.

/usr/share/dpkg/cputable
    Tabell över kända processornamn och deras motsvarande GNU-namn.

/usr/share/dpkg/ostable
    Tabell över kända operativsystemsnamn och deras motsvarande GNU-namn.

/usr/share/dpkg/triplettable
    Tabell över Debianarkitekturtripplar och deras motsvarande Debianarkitekturnamn.

/usr/share/dpkg/abitable
    Table of Debian architecture ABI attribute overrides.

  Paketeringsstöd

/usr/share/dpkg/architecture.mk
    Makefile-utklipp som sätter alla variabler dpkg-architecture skriver (sedan dpkg 1.16.1):

EXEMPEL
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`

Kontrollera om aktuell eller angiven arkitektur är samma en arkitektur:

    dpkg-architecture -elinux-alpha

    dpkg-architecture -amips -elinux-mips

Se om den aktuella eller angivna arkitekturen är ett Linuxsystem:

    dpkg-architecture -ilinux-any

    dpkg-architecture -ai386 -ilinux-any

  Använda i 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:

Hämta GNU-systemtypen och vidaresänd den till ./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)

Gör något endast för en specifik arkitektur:

    DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
    ifeq ($(DEB_HOST_ARCH),alpha)
      [...]
    endif

eller, om du bara vill testa på processor- eller OS-typ, använd variablerna DEB_HOST_ARCH_CPU eller DEB_HOST_ARCH_OS.

Observera att du även kan bero på att ett externt Makefile-utklipp sätter alla variabler dpkg-architecture kan tillhandahålla:

    include /usr/share/dpkg/architecture.mk
    ifeq ($(DEB_HOST_ARCH),alpha)
      [...]
    endif

Oavsett bör du aldrig använda dpkg --print-architecture för att hämta arkitekturinformation när paketet byggs.

ANTECKNINGAR
De långa kommando- och flaggnamn är endast tillgängliga sedan dpkg 1.17.17.

SE ÄVEN
dpkg-buildpackage(1), dpkg-cross(1).

ÖVERSÄTTNING
Peter Krefting och Daniel Nylander.