Provided by: dpkg-dev_1.15.4ubuntu2_all bug

NAZWA

       dpkg-architecture - ustawia i zwraca architekturę budowania pakietów.

SKŁADNIA

       dpkg-architecture [opcje] [polecenia]

OPIS

       dpkg-architecture   dostarcza   sposobu   na  określenie  i  ustawienie
       architektury  budowania  oraz  architektury  docelowej  dla   budowania
       pakietów.

       Architektura budowania jest zawsze określana przez wywołanie dpkg i nie
       może być ustawiona w linii poleceń.

       Można podać architekturę komputera przez podanie jednej lub  obu  opcji
       spośród  -a  i  -t.  Wartość  domyślna  jest  określana przez wywołanie
       programu gcc(1), a w razie gdy CC i gcc nie są dostępne, to  jest  taka
       sama,  jak  architektura budowania. Wystarczy podać tylko jedną spośród
       opcji -a i -t, ponieważ ta druga zostanie ustawiona na sensowną wartość
       domyślną.  Co  więcej,  często  podanie  jednej  opcji  jest lepsze niż
       podanie ich obu  naraz,  gdyż  dpkg-architecture  wypisze  ostrzeżenie,
       jeśli wartości nie będą sobie odpowiadały.

POLECENIA

       -l     Wyświetla  zmienne  środowiskowe,  po  jednej  w każdej linii, w
              formacie ZMIENNA=warto. Jest to domyślna akcja.

       -earchitektura-debiana
              Sprawdza       równoważność        architektur.        Domyślnie
              architektura-debiana  jest  porównywana  z  bieżącą architekturą
              Debiana, traktowaną jako architektura  docelowa.  Ta  akcja  nie
              rozwija  masek architektur. Polecenie kończy się kodem wyjścia 0
              jeśli dopasowanie architektur się powiodło, lub  kodem  1  jeśli
              nie było dopasowania.

       -imaska-architektury
              Sprawdzenie  architektury  przez rozwinięcie w odpowiedni sposób
              maski-architektury i porównanie z bieżącą architekturą  Debiana.
              Polecenie   kończy   się   kodem  wyjścia  0  jeśli  dopasowanie
              architektur  się  powiodło,  lub  kodem   1   jeśli   nie   było
              dopasowania.

       -qnazwa-zmiennej
              Wyświetla wartość pojedynczej zmiennej.

       -s     Wyświetla  polecenie  export, które może być użyte do ustawienia
              zmiennych środowiskowych za pomocą eval.

       -u     Wyświetla  polecenie  podobne  do  -s,  jednakże  ze  wszystkimi
              zmiennymi nieustawionymi.

       -c polecenie
              Wykonuje  polecenie  w  środowisku,  które  ma wszystkie zmienne
              ustawione na wyznaczone wartości.

       -L     Wyświetla listę poprawnych nazw architektur.

       --help Wyświetla informację o użytkowaniu i kończy działanie.

       --version
              Wyświetla informację o wersji i pomyślnie kończy działanie.

OPCJE

       -aarchitektura-debiana
              Ustawia architekturę Debiana.

       -ttyp-systemu-gnu
              Ustawia typ systemu GNU.

       -f     Honorowane  są  wartości  ustawione  w  istniejących   zmiennych
              środowiskowych  o  tych  samych  nazwach, co używane w skryptach
              (np. użyte przez dpkg-architecture), chyba  że  jest  obecna  ta
              flaga  wymuszenia. Pozwala to na nadpisanie wartości nawet jeśli
              wywołanie dpkg-architecture jest ukryte głęboko w  jakimś  innym
              skrypcie (np. dpkg-buildpackage(1)).

WARUNKI

       komputer budowania
           Komputer, na którym pakiet jest budowany.

       komputer-gość
           Architektura, dla której pakiet jest budowany.

       architektura Debiana
           Łańcuch  znaków  zawierający  architekturę  Debiana,  która określa
           drzewo binarne w archiwum FTP. Przykłady: i386, sparc, hurd-i386.

       maska architektury
           Maska architektury jest specjalnym łańcuchem znaków,  który  będzie
           pasował  do  każdej  architektury,  która jest jego częścią. Ogólna
           postać jest następująca: <jądro>-<procesor>. Przykłady:  linux-any,
           any-i386, hurd-any.

       typ systemu GNU
           Łańcuch  znaków  określający  architekturę  składający  się z dwóch
           części  oddzielonych  myślnikiem:  procesor  i  system.  Przykłady:
           i386-linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd.

ZMIENNE

       dpkg-architecture ustawia następujące zmienne:

       DEB_BUILD_ARCH
           Architektura  wg Debiana komputera, na którym budowany jest pakiet.

       DEB_BUILD_ARCH_OS
           Nazwa systemu wg Debiana komputera, na którym budowany jest pakiet.

       DEB_BUILD_ARCH_CPU
           Nazwa  procesora  wg  Debiana  komputera,  na  którym budowany jest
           pakiet.

       DEB_BUILD_ARCH_BITS
           The pointer size of the build machine (in bits).

       DEB_BUILD_ARCH_ENDIAN
           The endianness of the build machine (little / big).

       DEB_BUILD_GNU_TYPE
           Typ systemu GNU komputera, na którym budowany jest pakiet.

       DEB_BUILD_GNU_CPU
           Część dotycząca CPU z DEB_BUILD_GNU_TYPE

       DEB_BUILD_GNU_SYSTEM
           Cześć dotycząca systemu z DEB_BUILD_GNU_TYPE.

       DEB_HOST_ARCH
           Architektura wg Debiana komputera-gościa.

       DEB_BUILD_ARCH_OS
           Nazwa systemu wg Debiana komputera-gościa.

       DEB_HOST_ARCH_CPU
           Nazwa procesora wg Debiana komputera-gościa.

       DEB_BUILD_ARCH_BITS
           The pointer size of the host machine (in bits).

       DEB_BUILD_ARCH_ENDIAN
           The endianness of the host machine (little / big).

       DEB_HOST_GNU_TYPE
           Typ systemu GNU komputera-gościa.

       DEB_HOST_GNU_CPU
           Część dotycząca CUP z DEB_HOST_GNU_TYPE.

       DEB_HOST_GNU_SYSTEM
           Część dotycząca systemu z DEB_HOST_GNU_TYPE.

DEBIAN/RULES

       Zmienne środowiskowe ustawione przez dpkg-architecture są  przekazywane
       do  debian/rules  jako  zmienne  programu  make  (patrz dokumentacja do
       make). Jednakże nie należy  na  nich  polegać,  gdyż  psuje  to  ręczne
       uruchomienie  tego  skryptu.  Zamiast tego, należy zawsze inicjować je,
       używając dpkg-architecture  z  opcją  -q.  Poniżej  znajduje  się  parę
       przykładów,  które  także  pokazują,  jak  można polepszyć wsparcie dla
       kompilacji krzyżowej pakietu:

       Zamiast:

              ARCH=`dpkg --print-architecture`
              configure $(ARCH)-linux

       proszę używać:

              DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
              DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)

              configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)

       Zamiast:

              ARCH=`dpkg --print-architecture`
              ifeq ($(ARCH),alpha)
                ...
              endif

       proszę używać:

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

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

       albo jeśli trzeba sprawdzić tylko typ CPU lub OS, należy użyć zmiennych
       DEB_HOST_ARCH_CPU lub DEB_HOST_ARCH_OS.

       Ogólnie  wywoływanie  dpkg  w  pliku rules w celu pobrania informacji o
       architekturze  jest  przestarzałe   (chyba   że   chce   się   zachować
       kompatybilność   wsteczną,   patrz   niżej).   W   szczególności  opcja
       --print-architecture  jest  niezbyt   wiarygodna,   ponieważ   istnieją
       architektury Debiana, które nie są równe nazwie procesora.

KOMPATYBILNOŚĆ WSTECZNA

       The  DEB_*_ARCH_BITS and DEB_*_ARCH_ENDIAN variables were introduced in
       dpkg-dev  1.15.4.  Using  them  in   debian/rules   thus   requires   a
       build-dependency on dpkg-dev (>= 1.15.4).

       The DEB_HOST_ARCH_CPU and DEB_HOST_ARCH_OS variables were introduced in
       dpkg-dev 1.13.2. Before this debian/rules files  tended  to  check  the
       values  of  the  DEB_HOST_GNU_CPU  or DEB_HOST_GNU_TYPE variables which
       have been subject to change.

       Wszystkie pliki debian/rules, decydujące na  podstawie  tych  zmiennych
       jak  i  co  kompilować,  powinny  być zaktualizowane i przystosowane do
       używania  nowych  zmiennych  i  ich  wartości.  Aby  zachować  wsteczną
       kompatybilność    z   poprzednimi   wersjami   dpkg-dev,   można   użyć
       następującego kodu:

              DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null)
              DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null)

              # Bierze pod uwagę wyjście ze starego dpkg-architecture.
              ifeq ($(DEB_HOST_ARCH_CPU),)
                DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
                ifeq ($(DEB_HOST_ARCH_CPU),x86_64)
                  DEB_HOST_ARCH_CPU := amd64
                endif
              endif
              ifeq ($(DEB_HOST_ARCH_OS),)
                DEB_HOST_ARCH_OS := $(subst -gnu,,$(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM))
                ifeq ($(DEB_HOST_ARCH_OS),gnu)
                  DEB_HOST_ARCH_OS := hurd
                endif
              endif

       I podobnie dla DEB_BUILD_ARCH_CPU oraz DEB_BUILD_ARCH_OS.

       Jeśli chcesz wciąż obsługiwać  wersje  dpkg-dev,  które  nie  zawierają
       dpkg-architecture, to poniższy kod wykonuje to zadanie:

              DEB_BUILD_ARCH := $(shell dpkg --print-architecture)
              DEB_BUILD_GNU_CPU := $(patsubst hurd-%,%,$(DEB_BUILD_ARCH))
              ifeq ($(filter-out hurd-%,$(DEB_BUILD_ARCH)),)
                DEB_BUILD_GNU_SYSTEM := gnu
              else
                DEB_BUILD_GNU_SYSTEM := linux-gnu
              endif
              DEB_BUILD_GNU_TYPE=$(DEB_BUILD_GNU_CPU)-$(DEB_BUILD_GNU_SYSTEM)

              DEB_HOST_ARCH := $(DEB_BUILD_ARCH)
              DEB_HOST_GNU_CPU := $(DEB_BUILD_GNU_CPU)
              DEB_HOST_GNU_SYSTEM := $(DEB_BUILD_GNU_SYSTEM)
              DEB_HOST_GNU_TYPE := $(DEB_BUILD_GNU_TYPE)

       Umieść  podzbiór  tych  linii  na górze pliku debian/rules; te domyślne
       wartości będą nadpisane przez dpkg-architecture, jeśli jest używane.

       Nie ma potrzeby używania pełnego zestawu zmiennych. Można wybrać spójny
       ich  zbiór,  zawierający  wartości  używane w pliku rules. Na przykład,
       jeżeli potrzebujesz tylko architektury Debiana komputera,  dla  którego
       budowany  jest  pakiet,  wystarczające jest użycie "DEB_HOST_ARCH=`dpkg
       --print-architecture`"  (tak  naprawdę  jest  to  architektura  Debiana
       maszyny,  na  której  jest  budowany  pakiet,  ale  proszę pamiętać, że
       próbujemy tylko zachować wsteczną zgodność z natywną kompilacją).

       Opcje  -e  i  -i  zostały   wprowadzone   w   miarę   nowych   wersjach
       dpkg-architecture (od wersji dpkg 1.13.13).

PRZYKŁADY

       dpkg-buildpackage    akceptuje    opcję   -a   i   przekazuje   ją   do
       dpkg-architecture. Inne przykłady:

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

              eval `dpkg-architecture -u`

       Sprawdzanie, czy architektura jest  równa  architekturze  bieżącej  lub
       podanej:

              dpkg-architecture -elinux-alpha

              dpkg-architecture -amips -elinux-mips

       Sprawdzanie,  czy  architektura  bieżąca  podana przez -a jest systemem
       Linuksa:

              dpkg-architecture -ilinux-any

              dpkg-architecture -ai386 -ilinux-any

PLIKI

       Wszystkie te pliki muszą być  obecne,  aby  dpkg-architecture  w  ogóle
       działał.  Ich  położenie możnazmienić w czasie działania programu przez
       ustawienie zmiennej środowiskowej DPKG_DATADIR.

       /usr/share/dpkg/cputable
              Tabela znanych nazw procesorów i ich mapowanie na nazwy GNU.

       /usr/share/dpkg/ostable
              Tabela nazw znanych systemów operacyjnych  i  ich  mapowanie  na
              nazwy GNU.

       /usr/share/dpkg/triplettable
              Mapowanie   między   trójkami   architektur  Debiana  a  nazwami
              architektur Debiana.

ZOBACZ TAKŻE

       dpkg-buildpackage(1), dpkg-cross(1).

AUTOR

       dpkg-architecture i ta strona podręcznika ekranowego  zostały  napisane
       Marcusa Brinkmanna <brinkmd@debian.org>.

TŁUMACZE

       Piotr Roszatycki <dexter@debian.org>, 1999
       Bartosz Feński <fenio@debian.org>, 2004-2005
       Robert Luberda <robert@debian.org>, 2006-2008
       Wiktor Wandachowicz <siryes@gmail.com>, 2008