Provided by: dpkg-dev_1.15.5.6ubuntu4_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ę docelową 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, 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 podane wartości nie będą odpowiadały wartościom domyślnym.

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

       maszyna budowania
           Rodzaj maszyny, na której pakiet jest budowany.

       maszyna docelowa
           Rodzaj maszyny, 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
           Rozmiar wskaźnika na komputerze budującym (w bitach).

       DEB_BUILD_ARCH_ENDIAN
           Kolejność bajtów (endian) na komputerze budującym (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 dla maszyny docelowej.

       DEB_BUILD_ARCH_OS
           Nazwa systemu wg Debiana dla maszyny docelowej.

       DEB_HOST_ARCH_CPU
           Nazwa procesora wg Debiana dla maszyny docelowej.

       DEB_BUILD_ARCH_BITS
           Rozmiar wskaźnika na maszynie docelowej (w bitach).

       DEB_BUILD_ARCH_ENDIAN
           Kolejność bajtów (endian) na maszynie docelowej (little / big).

       DEB_HOST_GNU_TYPE
           Typ systemu GNU dla maszyny docelowej.

       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

       Zmienne  DEB_*_ARCH_BITS  oraz  DEB_*_ARCH_ENDIAN zostały wprowadzone w
       dpkg-dev 1.15.4. Używanie ich w  debian/rules  wymaga  więc  zależności
       czasu budowania dla dpkg-dev (>= 1.15.4).

       Zmienne  DEB_HOST_ARCH_CPU  oraz  DEB_HOST_ARCH_OS  są dostępne w miarę
       nowych wersjach dpkg-architecture (od dpkg 1.13.2). Wcześniej w plikach
       debian/rules    były    sprawdzane    zmienne    DEB_HOST_GNU_CPU   lub
       DEB_HOST_GNU_TYPE, które zostały zmienione.

       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 potrzebna jest tylko architektura Debiana  maszyny,  dla  której
       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