Provided by:
dpkg-dev_1.16.0.3ubuntu5_all 
NAZWA
dpkg-shlibdeps - generowanie zalenoci podstawie wspoldzielonych
bibliotek
SK/LADNIA
dpkg-shlibdeps [opcje] plik_wykonywalny|-eplik_wykonywalny [opcje]
OPIS
dpkg-shlibdeps okrela zalenoci podstawie wspoldzielonych bibliotek dla
plikow wykonywalnych podanych jako argumenty. Zalenoci te s dodawane do
pliku podstawie zmiennych debian/substvars jako zmienne
shlibs:pole-zalenoci, przy czym pole-zalenoci jest nazw odpowiedniego
pola zalenoci. Wszystkie inne zmienne rozpoczynajce si od shlibs: s
usuwane z tego pliku.
dpkg-shlibdeps ma dwa rodla informacji sluce do generowania informacji
o zalenociach. S to pliki symbols lub pliki shlibs. Dla kadego pliku
binarnego analizowanego przez dpkg-shlibdeps okrelana jest lista
bibliotek, z ktorymi jest on linkowany. Nastpnie dla kadej biblioteki
przegldany jest plik symbols lub plik shlibs (jeli ten pierwszy nie
istnieje, lub gdy debian/shlibs.local zawiera stosown zaleno). Oba
pliki powinny by dostarczane przez pakiet zawierajcy bibliotek i
powinny wic by dostpne jako /var/lib/dpkg/info/pakiet.symbols lub
/var/lib/dpkg/info/pakiet.shlibs. Nazwa pakietu jest okrelana w dwoch
krokach: odnalezienie pliku biblioteki w systemie (sprawdzajc w tych
samych katalogach, ktorych uywa ld.so), a nastpnie uycie dpkg -S
plik-biblioteki w celu okrelenia pakietu dostarczajcego dan bibliotek.
Pliki symboli
Pliki symboli zawieraj dokladniejsze okrelenia informacji o
zalenociach, dostarczajc minimum zalenoci dla kadego symbolu
eksportowanego przez bibliotek. Skrypt probuje odnale plik zwizany z
pakietem biblioteki w nastpujcych miejscach (uyte jest pierwsze
dopasowanie):
debian/*/DEBIAN/symbols
Informacje o wspoldzielonej bibliotece wygenerowane w biecym
procesie budowy, ktory wywolal rownie dpkg-shlibdeps. S one
generowane przez dpkg-gensymbols(1). S uywane tylko, gdy
biblioteka znajduje si w drzewie budowania pakietu. Plik
"symbols" z tego drzewa ma pierwszestwo nad plikami symboli z
innych pakietow binarnych.
/etc/dpkg/symbols/pakiet.symbols.arch
/etc/dpkg/symbols/pakiet.symbols
Informacje o zasigu systemu, ktore nadpisuj informacje o
zalenociach bibliotek wspoldzielonych. arch jest architektur
biecego systemu (okrelon przez dpkg-architecture
-qDEB_HOST_ARCH).
Output from "dpkg-query --control-path package symbols"
Package-provided shared library dependency information. Unless
overridden by --admindir, those files are located in
/var/lib/dpkg.
Podczas przeszukiwania symboli uywanych przez wszystkie pliki binarne,
dpkg-shlibdeps zapamituje (najwiksz) minimaln wersj wymagan dla kadej
biblioteki. Na kocu procesu jest wic w stanie wypisa minimalne zalenoci
dla kadej uytej biblioteki (pod warunkiem, e informacja z plikow
symbols jest dokladna).
Jako zabezpieczenie plik symboli moe zawiera pole metainformacji
Build-Depends-Package, za dpkg-shlibdeps okrelajc minimaln wersj
wymagan przez odpowiadajcy pakiet z pola Build-Depends bdzie uywa
wlanie tej wersji, jeli jest ona wysza ni minimalna wersja okrelona
dziki przeszukiwaniu symboli.
Pliki "shlibs"
Pliki "shlibs" wi bezporednio bibliotek z zalenociami (bez przegldania
symboli). Jest to wic czsto silniejsze ni naprawd potrzebne, ale bardzo
bezpieczne i latwe w obsludze.
Zalenoci dla biblioteki s wyszukiwane w kilku miejscach. Uywany jest
pierwszy plik zawierajcy informacje dla danej biblioteki:
debian/shlibs.local
Lokalne informacje z pakietu nadpisujce informacje o zalenociach
bibliotek wspoldzielonych.
/etc/dpkg/shlibs.override
Informacje o zasigu systemu, ktore nadpisuj informacje o
zalenociach bibliotek wspoldzielonych.
debian/*/DEBIAN/shlibs
Informacje o zalenociach wspoldzielonych bibliotek wygenerowane
w biecym procesie budowy, ktory wywolal rownie dpkg-shlibdeps. S
uywane tylko, gdy biblioteka znajduje si w drzewie budowania
pakietu. Plik "shlibs" z tego drzewa ma pierwszestwo nad plikami
shlibs z innych pakietow binarnych."
Output from "dpkg-query --control-path package shlibs"
Package-provided shared library dependency information. Unless
overridden by --admindir, those files are located in
/var/lib/dpkg.
/etc/dpkg/shlibs.default
Domylna informacja o zalenociach bibliotek wspoldzielonych, o
zakresie systemu.
Uzyskane zalenoci s uywane bezporednio (chyba, e s odfiltrowane poniewa
zostaly zidentyfikowane jako duplikaty lub slabsze ni jaka inna
zaleno).
OPCJE
dpkg-shlibdeps interpretuje parametry nie bdce opcjami jako nazwy
plikow wykonywalnych, tak jakby byly podane przez -eplik_wykonywalny.
-eplik_wykonywalny
Wlczenie zalenoci odpowiadajcych bibliotekom wspoldzielonym
wymaganym przez plik_wykonywalny.
-dpole_zalenoci
Dodanie zalenoci, ktore maj by dodane do pola zalenoci
pole_zalenoci pliku kontrolnego. (Zalenoci dla tego pola s
umieszczane w zmiennej shlibs:pole_zalenoci.)
Opcja -dpole_zalenoci wplywa na wszystkie pliki wykonywalne
podane po tej opcji, a do nastpnego -dpole_zalenoci. Domylnym
polem_zalenoci jest Depends.
Jeli to samo okrelenie zalenoci (lub zbior alternatyw) pojawia
si w wicej ni jednej nazwie z rozronianych pol zalenoci
Pre-Depends, Depends, Recommends, Enhances lub Suggests to
dpkg-shlibdeps automatycznie usunie zaleno ze wszystkich pol,
poza polem reprezentujcym najwaniejsze zalenoci.
-pprefiks_nazw_zmiennych
Rozpoczynanie nazw zmiennych podstawiania od
prefiks_nazw_zmiennych: zamiast shlibs:. Podobnie, wszystkie
zmienne rozpoczynajce si od prefiks_nazw_zmiennych: (zamiast
shlibs:) s usuwane z pliku zmiennych podstawiania.
-O Wywietlenie ustawie zmiennych podstawiania na standardowe
wyjcie, zamiast dodawania ich do pliku zmiennych podstawiania
(domylnie debian/substvars).
-ttyp Preferowanie informacji o zalenociach bibliotek wspoldzielonych
oznaczonych dla danego typu pakietu. Jeli informacji oznaczonych
nie ma, uywane s informacje bez oznacze. Domylnym typem pakietu
jest "deb". Informacje o zalenociach bibliotek wspoldzielonych s
oznaczane dla danego typu pakietu przez poprzedzenie ich nazw
typu, dwukropkiem oraz bialymi znakami (spacjami).
-Llokalny_plik_shlibs
Odczyt nadpisa informacji o bibliotekach wspoldzielonych z
lokalnego_pliku_shlibs zamiast debian/shlibs.local.
-Tplik_zmiennych_podst
Zapis zmiennych podstawiania w pliku plik_zmiennych_podst;
domylnie jest to debian/substvars.
-v Wlczenie dodatkowych informacji. Wywietlanych jest wiele
komunikatow tlumaczcych dzialanie dpkg-shlibdeps.
-xpakiet
Wylczenie pakietu z generowanych zalenoci. Uyteczne aby zapobiec
zalenociom pakietu od samego siebie dla pakietow dostarczajcych
binaria typu ELF (pliki wykonywalne lub biblioteki), ktore zale
od innej biblioteki zawartej w tym samym pakiecie. Ta opcja moe
by uyta wielokrotnie aby wylczy kilka pakietow.
-Skatalog_budowania_pakietu
Przegldanie najpierw katalogu_budowania_pakietu przy probie
odnalezienia biblioteki. Przydatne gdy pakiet rodlowy tworzy
wiele odmian tej samej biblioteki, a chce si zapewni uzyskanie
zalenoci od okrelonego pakietu binarnego. Ta opcja moe by uyta
wielokrotnie: katalogi bd przegldane w tej samej kolejnoci przed
katalogami innych pakietow binarnych.
--ignore-missing-info
Kontynuacja pomimo braku informacji o zalenociach dla biblioteki
wspoldzielonej. Odradza si uywanie tej opcji, wszystkie
biblioteki powinny dostarcza informacje o zalenociach (w postaci
plikow shlibs lub plikow symboli) - nawet jeli nie s jeszcze
uywane przez inne pakiety.
--warnings=warto
warto jest polem bitowym definiujcym zbior ostrzee, ktore mog by
wyslane przez dpkg-shlibdeps. Bit 0 (warto=1) wlcza ostrzeenie
"w adnej z bibliotek nie znaleziono symbolu symb uywanego przez
plik_binarny", bit 1 (warto=2) wlcza ostrzeenie "mona by unikn
zalenoci od biblioteki bibl", za bit 2 (warto=4) wlcza
ostrzeenie "plik_binarny nie powinien by linkowany z bibliotek".
Domyln wartoci jest 3: pierwsze dwa ostrzeenia s domylnie
aktywne, za ostatnie nie. Ustawienie wartoci na 7 powoduje
aktywacj wszystkich ostrzee.
--admindir=katalog
Zmienia poloenie bazy danych dpkg. Domylnie jest to
/var/lib/dpkg.
-h, --help
Wywietla informacj o uytkowaniu i koczy dzialanie.
--version
Wywietla informacj o wersji i pomylnie koczy dzialanie.
UWAGI
Poniewa dpkg-shlibdeps analizuje zbior symboli uywanych przez kady plik
binarny generowanego pakietu, jest w stanie wysyla ostrzeenia w pewnych
przypadkach. Informuj one o rzeczach, ktore mog by ulepszone w
pakiecie. W wikszoci przypadkow dotyczy to bezporednio oryginalnych
rodel. Poniej zebrane s ostrzeenia na jakie mona natrafi, w kolejnoci
malejcej wanoci:
w adnej z bibliotek nie znaleziono symbolu symb uywanego przez
plik_binarny
Wskazany symbol nie zostal odnaleziony w adnej z bibliotek, z
ktorymi jest linkowany plik binarny. Taki plik_binarny jest
najpewniej bibliotek i powinien by linkowany z dodatkow
bibliotek podczas budowania pakietu (opcja -lbiblioteka
linkera).
plik_binarny zawiera nierozwizywalne odniesienie do symbolu sym:
prawdopodobnie jest to wtyczka
Wskazany symbol nie zostal odnaleziony w adnej z bibliotek, z
ktorymi jest linkowany plik binarny. Taki plik_binarny jest
najpewniej wtyczk i jest prawdopodobnie dostarczany wraz z
programem, ktory laduj tak wtyczk. Teoretycznie wtyczka nie
powinna mie pola SONAME, jednak ten plik binarny je posiada i
nie mona go zidentyfikowa na tej podstawie. Fakt, i plik ten
jest umieszczony w niepublicznym katalogu mocno wskazuje na to,
e nie jest on zwykl bibliotek wspoldzielon. Jeli plik binarny
rzeczywicie jest wtyczk, mona pomin to ostrzeenie. Jednak zawsze
istnieje moliwo, e jest to biblioteka i programy z ni linkowane
uywaj RPATH, aby dynamiczny loader byl w stanie j odnale. W
takim przypadku bibliotek mona uzna za zepsut i naley j naprawi.
mona by unikn zalenoci od biblioteki, jeeli nie by/loby niepotrzebnego
linkowania plik'ow_binarnych z ni (nie s uywane adne z tamtejszych
symboli).
aden z plik'ow_binarnych, ktore s linkowane z bibliotek nie uywa
symboli przez ni udostpnianych. Poprawiajc wszystkie pliki
binarne mona unikn zalenoci zwizanych z t bibliotek (chyba, e
taka sama zaleno jest rownie generowana przez inn bibliotek,
ktora jest faktycznie uywana).
plik_binarny nie powinien by linkowany z bibliotek (nie s uywane adne z
tamtejszych symboli).
plik_binarny jest linkowany z bibliotek, ktorej nie potrzebuje.
Nie jest to problem, ale mona uzyska pewn popraw wydajnoci czasu
ladowania pliku binarnego, jeli biblioteka ta nie bdzie z nim
linkowana. To ostrzeenie sprawdza te same informacje co
poprzednie, ale wykonuje to dla kadego pliku binarnego zamiast
wykonywania globalnego sprawdzenia dla wszystkich analizowanych
plikow.
B/LDY
dpkg-shlibdeps przerwie dzialanie z bldem jeli nie bdzie w stanie znale
publicznej biblioteki uywanej przez plik binarny, lub jeli biblioteka
taka nie bdzie mie powizanej informacji o zalenociach (pliku shlibs lub
pliku symboli). Publiczne biblioteki maj SONAME i s wersjonowane (jak
np. libsomething.so.X). Biblioteki prywatne (jak np. wtyczki) nie
powinny mie SONAME i nie musz by wersjonowane.
nie mona znale biblioteki soname-biblioteki potrzebnej dla
pliku_binarnego (RPATH to "rpath")
plik_binarny uywa biblioteki o nazwie soname-biblioteki, ale
dpkg-shlibdeps nie mogl odnale tej biblioteki. dpkg-shlibdeps
tworzy list katalogow do sprawdzenia w nastpujcy sposob:
katalogi wymienione w RPATH pliku binarnego, katalogi wymienione
w /etc/ld.so.conf, katalogi wymienione w zmiennej rodowiskowej
LD_LIBRARY_PATH, oraz standardowe katalogi publiczne (/lib,
/usr/lib, /lib32, /usr/lib32, /lib64, /usr/lib64). Nastpnie
sprawdza podobnie katalogi w drzewie budowania pakietu dla
analizowanego pliku binarnego, w drzewach budowania pakietow
podanych jako parametry opcji -S, w innych drzewach budowania
zawierajcych pliki DEBIAN/shlibs olub DEBIAN/symbols, a na kocu
w katalogu glownym. Jeli biblioteka nie zostanie odnaleziona w
adnym z tych katalogow, otrzymuje si ten bld.
Jeli nie odnaleziona biblioteka jest w prywatnym katalogu tego
samego pakietu, naley doda taki katalog do LD_LIBRARY_PATH. Jeli
biblioteka jest w innym budowanym binarnym pakiecie, naley
upewni si, e plik shlibs lub plik symboli dla tego pakietu
zostal stworzony oraz, e LD_LIBRARY_PATH zawiera odpowiedni
katalog jeli biblioteka take jest w katalogu prywatnym.
nie znaleziono informacji o zalenociach dla plik-biblioteki (uywanego
przez plik-binarny).
Biblioteka wymagana przez plik-binarny zostala znaleziona przez
dpkg-shlibdeps w pliku-biblioteki, ale dpkg-shlibdeps nie mogl
odnale adnej informacji o zalenociach dla tej biblioteki. Aby
okreli zalenoci, podjto prob uycia dpkg -Splik-biblioteki w celu
okrelenia pakietu dostarczajcego dan bibliotek. Nastpnie
sprawdzono odpowiednie pliki shlibs i pliki symboli w
/var/lib/dpkg/info/ oraz w ronych drzewach budowania pakietow
(debian/*/DEBIAN/).
To niepowodzenie moe by spowodowane przez niepoprawny lub
nieistniejcy plik shlibs lub plik symboli w pakiecie biblioteki.
Moe si rownie zdarzy jeli biblioteka jest budowana wewntrz tego
samego pakietu rodlowego, a pliki shlibs jeszcze nie zostaly
stworzone (w takim przypadku naley poprawi debian/rules aby
shlibs byly tworzone przed wywolaniem dpkg-shlibdeps).
Niewlaciwa warto RPATH moe rownie powodowa, e biblioteka
zostanie odnaleziona pod nietypow nazw, ktora nie jest zwizana z
adnym pakietem (np.
/usr/lib/openoffice.org/../lib/libssl.so.0.9.8 zamiast
/usr/lib/libssl.so.0.9.8). dpkg-shlibdeps probuje poradzi sobie
z tym starajc si odczyta nazw kanoniczn (z uyciem realpath(3))
ale moe to nie zawsze zadziala. Aby unikn problemow, najlepiej
jest zawsze doprowadzi do porzdku RPATH pliku binarnego.
Wywolanie dpkg-shlibdeps w trybie rozszerzonej informacji (-v)
dostarcza wielu dodatkowych informacji o tym, gdzie probowal on
znale informacj o zalenociach. Moe to by przydatne jeli nie
wiadomo dlaczego zwracany jest ten bld.
ZOBACZ TAKE
deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).
AUTORZY
Copyright (C) 1995-1996 Ian Jackson
Copyright (C) 2000 Wichert Akkerman
Copyright (C) 2006 Frank Lichtenheld
Copyright (C) 2007-2008 Raphael Hertzog
Niniejszy program jest oprogramowaniem wolnym, sprawd Powszechn Licencj
Publiczn GNU w wersji drugiej lub poniejszej, by dowiedzie si o
warunkach dystrybucji. Brak JAKIEJKOLWIEK gwarancji.
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