Provided by:
dpkg-dev_1.14.16.6ubuntu3_all 
NAZWA
dpkg-architecture - ustawia i zwraca architekturę budowania pakietów.
SKŁADNIA
dpkg-architecture [opcje] [polecenia]
OPIS
dpkg-architecture does provide a facility to determine and set the
build and host architecture for package building.
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
Check for equality of architecture. By default
debian-architecture is compared against the current Debian
architecture, being the host. This action will not expand the
architecture wildcards. Command finishes with an exit status of
0 if matched, 1 if not matched.
-iarchitecture-wildcard
Check for identity of architecture by expanding
architecture-wildcard as an architecture wildcard and comparing
against the current Debian architecture. Command finishes with
an exit status of 0 if matched, 1 if not matched.
-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 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)).
WARUNKI
build machine
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_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_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.
In general, calling dpkg in the rules file to get architecture
information is deprecated (unless you want to provide backward
compatibility, see below). Especially the --print-architecture option
is unreliable since we have Debian architectures which don't equal a
processor name.
KOMPATYBILNOŚĆ WSTECZNA
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 sprawdzało się 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żywane 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
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>.