Provided by:
dpkg-dev_1.15.5.6ubuntu4_all 
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