Provided by: dpkg-dev_1.16.0.3ubuntu5_all bug

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