Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

dpkg-architecture(1)


dpkg−architecture

dpkg−architecture

NAZWA
SK£ADNIA
OPIS
POLECENIA
OPCJE
WARUNKI
ZMIENNE
DEBIAN/RULES
KOMPATYBILNO¦Æ WSTECZNA
PRZYK£ADY
PLIKI
ZOBACZ TAK¯E
AUTOR
T£UMACZE

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&ecirc;dzie pasowa³ do ka¿dej architektury, która jest jego cz&ecirc;¶ci±. Ogólna postaæ jest nast&ecirc;puj±ca: <j±dro>−<procesor>. Przyk³ady: linux−any, any−i386, hurd−any.

typ systemu GNU

£añcuch znaków okre¶laj±cy architektur&ecirc; sk³adaj±cy si&ecirc; z dwóch cz&ecirc;¶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&ecirc;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&ecirc;¶æ dotycz±ca CUP z DEB_HOST_GNU_TYPE .

DEB_HOST_GNU_SYSTEM

Cz&ecirc;¶æ 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&ecirc;czne uruchomienie tego skryptu. Zamiast tego, nale¿y zawsze inicjowaæ je, u¿ywaj±c dpkg−architecture z opcj± −q. Poni¿ej znajduje si&ecirc; par&ecirc; 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&ecirc; 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&ecirc; 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&ecirc; 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&ecirc;c zale¿no¶ci czasu budowania dla dpkg−dev (>= 1.15.4).

Zmienne DEB_HOST_ARCH_CPU oraz DEB_HOST_ARCH_OS s± dost&ecirc;pne w miar&ecirc; 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&ecirc;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&ecirc; 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&ecirc;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&ecirc; jest to architektura Debiana maszyny, na której jest budowany pakiet, ale prosz&ecirc; pami&ecirc;taæ, ¿e próbujemy tylko zachowaæ wsteczn± zgodno¶æ z natywn± kompilacj±).

Opcje −e i −i zosta³y wprowadzone w miar&ecirc; nowych wersjach dpkg−architecture (od wersji dpkg 1.13.13).

PRZYK£ADY

dpkg−buildpackage akceptuje opcj&ecirc; −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&ecirc;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&ecirc;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



dpkg-architecture(1)