dpkg-architecture

Autres langues

Langue: pl

Autres versions - même langue

Version: 2009\-08\-15 (ubuntu - 25/10/10)

Section: 1 (Commandes utilisateur)

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_CPU
The CPU part of DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_SYSTEM
Cze¶æ dotycz±ca systemu z DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_TYPE
Typ systemu GNU komputera, na którym budowany jest pakiet.
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 wskaŒnika na maszynie docelowej (w bitach).
DEB_HOST_ARCH_ENDIAN
Kolejno¶æ bajtów (endian) na maszynie docelowej (little / big).
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.
DEB_HOST_GNU_TYPE
Typ systemu GNU dla maszyny docelowej.

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