Provided by:
dpkg-dev_1.16.0.3ubuntu5_all 
NAZWA
dpkg-architecture - ustawia i zwraca architektur budowania pakietow.
SK/LADNIA
dpkg-architecture [opcje] [polecenia]
OPIS
dpkg-architecture dostarcza sposobu na okrelenie i ustawienie
architektury budowania oraz architektury docelowej dla budowania
pakietow.
Architektura budowania jest zawsze okrelana przez wywolanie dpkg i nie
moe by ustawiona w linii polece.
Mona poda architektur docelow przez podanie jednej lub obu opcji sporod
-a i -t. Warto domylna jest okrelana przez wywolanie programu gcc(1), a
w razie gdy CC i gcc nie s dostpne, jest taka sama jak architektura
budowania. Wystarczy poda tylko jedn sporod opcji -a i -t, poniewa ta
druga zostanie ustawiona na sensown warto domyln. Co wicej, czsto
podanie jednej opcji jest lepsze ni podanie ich obu naraz, gdy
dpkg-architecture wypisze ostrzeenie, jeli podane wartoci nie bd
odpowiadaly wartociom domylnym.
POLECENIA
-l Wywietla zmienne rodowiskowe, po jednej w kadej linii, w
formacie ZMIENNA=warto. Jest to domylna akcja.
-earchitektura-debiana
Sprawdza rownowano architektur. Domylnie architektura-debiana
jest porownywana z biec architektur Debiana, traktowan jako
architektura gospodarza. Ta akcja nie rozwija masek architektur.
Polecenie koczy si kodem wyjcia 0 jeli dopasowanie architektur
si powiodlo, lub kodem 1 jeli nie bylo dopasowania.
-imaska-architektury
Sprawdzenie architektury przez rozwinicie w odpowiedni sposob
maski-architektury i porownanie z biec architektur Debiana.
Polecenie koczy si kodem wyjcia 0 jeli dopasowanie architektur
si powiodlo, lub kodem 1 jeli nie bylo dopasowania.
-qnazwa-zmiennej
Wywietla warto pojedynczej zmiennej.
-s Wywietla polecenie export, ktore moe by uyte do ustawienia
zmiennych rodowiskowych za pomoc eval.
-u Wywietla polecenie podobne do -s, jednake ze wszystkimi
zmiennymi nieustawionymi.
-c polecenie
Wykonuje polecenie w rodowisku, ktore ma wszystkie zmienne
ustawione na wyznaczone wartoci.
-L Wywietla list poprawnych nazw architektur.
--help Wywietla informacj o uytkowaniu i koczy dzialanie.
--version
Wywietla informacj o wersji i pomylnie koczy dzialanie.
OPCJE
-aarchitektura-debiana
Ustawia architektur Debiana.
-ttyp-systemu-gnu
Ustawia typ systemu GNU.
-f Honorowane s wartoci ustawione w istniejcych zmiennych
rodowiskowych o tych samych nazwach, co uywane w skryptach (np.
uyte przez dpkg-architecture), chyba e jest obecna ta flaga
wymuszenia. Pozwala to na nadpisanie wartoci nawet jeli
wywolanie dpkg-architecture jest ukryte glboko w jakim innym
skrypcie (np. dpkg-buildpackage(1)).
WARUNKI
maszyna budowania
Rodzaj maszyny, na ktorej pakiet jest budowany.
maszyna docelowa
Rodzaj maszyny, dla ktorej pakiet jest budowany.
architektura Debiana
Lacuch znakow zawierajcy architektur Debiana, ktora okrela drzewo
binarne w archiwum FTP. Przyklady: i386, sparc, hurd-i386.
maska architektury
Maska architektury jest specjalnym lacuchem znakow, ktory bdzie
pasowal do kadej architektury, ktora jest jego czci. Ogolna posta
jest nastpujca: <jdro>-<procesor>. Przyklady: linux-any, any-i386,
hurd-any.
typ systemu GNU
Lacuch znakow okrelajcy architektur skladajcy si z dwoch czci
oddzielonych mylnikiem: procesor i system. Przyklady:
i386-linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd.
ZMIENNE
dpkg-architecture ustawia nastpujce zmienne:
DEB_BUILD_ARCH
Architektura wg Debiana komputera, na ktorym budowany jest pakiet.
DEB_BUILD_ARCH_OS
Nazwa systemu wg Debiana komputera, na ktorym budowany jest pakiet.
DEB_BUILD_ARCH_CPU
Nazwa procesora wg Debiana komputera, na ktorym budowany jest
pakiet.
DEB_BUILD_ARCH_BITS
Rozmiar wskanika na komputerze budujcym (w bitach).
DEB_BUILD_ARCH_ENDIAN
Kolejno bajtow (endian) na komputerze budujcym (little / big).
DEB_BUILD_GNU_CPU
The CPU part of DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_SYSTEM
Cze dotyczca systemu z DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_TYPE
Typ systemu GNU komputera, na ktorym budowany jest pakiet.
DEB_BUILD_MULTIARCH
The clarified GNU system type of the build machine, used for
filesystem paths.
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_HOST_ARCH_BITS
Rozmiar wskanika na maszynie docelowej (w bitach).
DEB_HOST_ARCH_ENDIAN
Kolejno bajtow (endian) na maszynie docelowej (little / big).
DEB_HOST_GNU_CPU
Cz dotyczca CUP z DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_SYSTEM
Cz dotyczca systemu z DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_TYPE
Typ systemu GNU dla maszyny docelowej.
DEB_HOST_MULTIARCH
The clarified GNU system type of the host machine, used for
filesystem paths.
DEBIAN/RULES
Zmienne rodowiskowe ustawione przez dpkg-architecture s przekazywane do
debian/rules jako zmienne programu make (patrz dokumentacja do make).
Jednake nie naley na nich polega, gdy psuje to rczne uruchomienie tego
skryptu. Zamiast tego, naley zawsze inicjowa je, uywajc
dpkg-architecture z opcj -q. Poniej znajduje si par przykladow, ktore
take pokazuj, jak mona polepszy wsparcie dla kompilacji krzyowej
pakietu:
Zamiast:
ARCH=`dpkg --print-architecture`
configure $(ARCH)-linux
prosz uywa:
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 uywa:
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq ($(DEB_HOST_ARCH),alpha)
...
endif
albo jeli trzeba sprawdzi tylko typ CPU lub OS, naley uy zmiennych
DEB_HOST_ARCH_CPU lub DEB_HOST_ARCH_OS.
Ogolnie wywolywanie dpkg w pliku rules w celu pobrania informacji o
architekturze jest przestarzale (chyba e chce si zachowa kompatybilno
wsteczn, patrz niej). W szczegolnoci opcja --print-architecture jest
niezbyt wiarygodna, poniewa istniej architektury Debiana, ktore nie s
rowne nazwie procesora.
KOMPATYBILNO WSTECZNA
Zmienne DEB_*_ARCH_BITS oraz DEB_*_ARCH_ENDIAN zostaly wprowadzone w
dpkg-dev 1.15.4. Uywanie ich w debian/rules wymaga wic zalenoci czasu
budowania dla dpkg-dev (>= 1.15.4).
Zmienne DEB_HOST_ARCH_CPU oraz DEB_HOST_ARCH_OS s dostpne w miar nowych
wersjach dpkg-architecture (od dpkg 1.13.2). Wczeniej w plikach
debian/rules byly sprawdzane zmienne DEB_HOST_GNU_CPU lub
DEB_HOST_GNU_TYPE, ktore zostaly zmienione.
Wszystkie pliki debian/rules, decydujce na podstawie tych zmiennych jak
i co kompilowa, powinny by zaktualizowane i przystosowane do uywania
nowych zmiennych i ich wartoci. Aby zachowa wsteczn kompatybilno z
poprzednimi wersjami dpkg-dev, mona uy nastpujcego 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 wyjcie 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.
Jeli chcesz wci obslugiwa wersje dpkg-dev, ktore nie zawieraj
dpkg-architecture, to poniszy 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 podzbior tych linii na gorze pliku debian/rules; te domylne
wartoci bd nadpisane przez dpkg-architecture, jeli jest uywane.
Nie ma potrzeby uywania pelnego zestawu zmiennych. Mona wybra spojny
ich zbior, zawierajcy wartoci uywane w pliku rules. Na przyklad, jeeli
potrzebna jest tylko architektura Debiana maszyny, dla ktorej budowany
jest pakiet, wystarczajce jest uycie "DEB_HOST_ARCH=`dpkg
--print-architecture`" (tak naprawd jest to architektura Debiana
maszyny, na ktorej jest budowany pakiet, ale prosz pamita, e probujemy
tylko zachowa wsteczn zgodno z natywn kompilacj).
Opcje -e i -i zostaly wprowadzone w miar nowych wersjach
dpkg-architecture (od wersji dpkg 1.13.13).
PRZYK/LADY
dpkg-buildpackage akceptuje opcj -a i przekazuje j do
dpkg-architecture. Inne przyklady:
CC=i386-gnu-gcc dpkg-architecture -c debian/rules build
eval `dpkg-architecture -u`
Sprawdzanie, czy architektura jest rowna architekturze biecej lub
podanej:
dpkg-architecture -elinux-alpha
dpkg-architecture -amips -elinux-mips
Sprawdzanie, czy architektura bieca 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 ogole
dzialal. Ich poloenie monazmieni w czasie dzialania programu przez
ustawienie zmiennej rodowiskowej DPKG_DATADIR.
/usr/share/dpkg/cputable
Tabela znanych nazw procesorow i ich mapowanie na nazwy GNU.
/usr/share/dpkg/ostable
Tabela nazw znanych systemow operacyjnych i ich mapowanie na
nazwy GNU.
/usr/share/dpkg/triplettable
Mapowanie midzy trojkami architektur Debiana a nazwami
architektur Debiana.
ZOBACZ TAKE
dpkg-buildpackage(1), dpkg-cross(1).
AUTOR
dpkg-architecture i ta strona podrcznika ekranowego zostaly napisane
Marcusa Brinkmanna <brinkmd@debian.org>.
T/LUMACZE
Piotr Roszatycki <dexter@debian.org>, 1999
Bartosz Feski <fenio@debian.org>, 2004-2005
Robert Luberda <robert@debian.org>, 2006-2008
Wiktor Wandachowicz <siryes@gmail.com>, 2008