Provided by: dpkg-dev_1.17.5ubuntu5.8_all bug

NAZWA

       dpkg-shlibdeps - generowanie zależności podstawień współdzielonych bibliotek

SKŁADNIA

       dpkg-shlibdeps [opcja...] [-e]plik-wykonywalny [opcja...]

OPIS

       dpkg-shlibdeps   określa   zależności  podstawień  współdzielonych  bibliotek  dla  plików
       wykonywalnych podanych jako argumenty. Zależności  te  są  dodawane  do  pliku  podstawień
       zmiennych  debian/substvars jako zmienne shlibs:pole-zależności, przy czym pole-zależności
       jest nazwą odpowiedniego pola zależności. Wszystkie inne  zmienne  rozpoczynające  się  od
       shlibs: są usuwane z tego pliku.

       dpkg-shlibdeps ma dwa źródła informacji służące do generowania informacji o zależnościach.
       Są to pliki symbols lub pliki shlibs. Dla  każdego  pliku  binarnego  analizowanego  przez
       dpkg-shlibdeps  określana jest lista bibliotek, z którymi jest on linkowany. Następnie dla
       każdej biblioteki przeglądany jest plik symbols lub plik shlibs (jeśli  ten  pierwszy  nie
       istnieje,  lub  gdy debian/shlibs.local zawiera stosowną zależność). Oba pliki powinny być
       dostarczane  przez  pakiet  zawierający  bibliotekę  i  powinny  więc  być  dostępne  jako
       /var/lib/dpkg/info/pakiet.symbols lub /var/lib/dpkg/info/pakiet.shlibs. Nazwa pakietu jest
       określana w dwóch krokach: odnalezienie pliku biblioteki w systemie  (sprawdzając  w  tych
       samych katalogach, których używa ld.so), a następnie użycie dpkg -S plik-biblioteki w celu
       określenia pakietu dostarczającego daną bibliotekę.

   Pliki symboli
       Pliki symboli zawierają dokładniejsze określenia informacji o zależnościach,  dostarczając
       minimum  zależności  dla  każdego  symbolu eksportowanego przez bibliotekę. Skrypt próbuje
       odnaleźć plik związany  z  pakietem  biblioteki  w  następujących  miejscach  (użyte  jest
       pierwsze dopasowanie):

       debian/*/DEBIAN/symbols
              Informacje  o  współdzielonej  bibliotece  wygenerowane w bieżącym procesie budowy,
              który wywołał również dpkg-shlibdeps. Są one generowane  przez  dpkg-gensymbols(1).
              Są  używane  tylko,  gdy  biblioteka znajduje się w drzewie budowania pakietu. Plik
              "symbols" z tego drzewa ma pierwszeństwo nad  plikami  symboli  z  innych  pakietów
              binarnych.

       /etc/dpkg/symbols/pakiet.symbols.arch

       /etc/dpkg/symbols/pakiet.symbols
              Informacje  o zasięgu systemu, które nadpisują informacje o zależnościach bibliotek
              współdzielonych.  arch  jest  architekturą  bieżącego  systemu   (określoną   przez
              dpkg-architecture -qDEB_HOST_ARCH).

       Wynik z "dpkg-query --control-path pakiet symbols"
              Package-provided  shared  library  dependency  information.   Unless  overridden by
              --admindir, those files are located in /var/lib/dpkg.

       Podczas przeszukiwania symboli używanych przez  wszystkie  pliki  binarne,  dpkg-shlibdeps
       zapamiętuje (największą) minimalną wersję wymaganą dla każdej biblioteki. Na końcu procesu
       jest więc w  stanie  wypisać  minimalne  zależności  dla  każdej  użytej  biblioteki  (pod
       warunkiem, że informacja z plików symbols jest dokładna).

       As   a   safe-guard   measure,   a   symbols  file  can  provide  a  Build-Depends-Package
       meta-information field and dpkg-shlibdeps will extract the minimal version required by the
       corresponding  package in the Build-Depends field and use this version if it's higher than
       the minimal version computed by scanning symbols.

   Pliki "shlibs"
       Pliki "shlibs" wiążą bezpośrednio bibliotekę z zależnościami (bez  przeglądania  symboli).
       Jest  to  więc  często  silniejsze niż naprawdę potrzebne, ale bardzo bezpieczne i łatwe w
       obsłudze.

       Zależności dla biblioteki są wyszukiwane w kilku miejscach.  Używany  jest  pierwszy  plik
       zawierający informacje dla danej biblioteki:

       debian/shlibs.local
              Lokalne  informacje  z  pakietu  nadpisujące  informacje  o zależnościach bibliotek
              współdzielonych.

       /etc/dpkg/shlibs.override
              Informacje o zasięgu systemu, które nadpisują informacje o zależnościach  bibliotek
              współdzielonych.

       debian/*/DEBIAN/shlibs
              Informacje  o  zależnościach  współdzielonych  bibliotek  wygenerowane  w  bieżącym
              procesie budowy, który  wywołał  również  dpkg-shlibdeps.  Są  używane  tylko,  gdy
              biblioteka znajduje się w drzewie budowania pakietu. Plik "shlibs" z tego drzewa ma
              pierwszeństwo nad plikami shlibs z innych pakietów binarnych."

       Wynik z "dpkg-query --control-path pakiet shlibs"
              Package-provided shared  library  dependency  information.   Unless  overridden  by
              --admindir, those files are located in /var/lib/dpkg.

       /etc/dpkg/shlibs.default
              Domyślna informacja o zależnościach bibliotek współdzielonych, o zakresie systemu.

       Uzyskane  zależności  są  używane bezpośrednio (chyba, że są odfiltrowane ponieważ zostały
       zidentyfikowane jako duplikaty lub słabsze niż jakaś inna zależność).

OPCJE

       dpkg-shlibdeps interpretuje parametry nie będące opcjami jako nazwy plików  wykonywalnych,
       tak jakby były podane przez -eplik_wykonywalny.

       -eplik-wykonywalny
              Include  dependencies  appropriate for the shared libraries required by executable.
              This option can be used multiple times.

       -ldirectory
              Add directory to the list of directories to search  for  private  shared  libraries
              (since dpkg 1.17.0). This option can be used multiple times.

              Note:  Use  this  option  instead  of  setting LD_LIBRARY_PATH, as that environment
              variable is used to control the run-time linker and abusing it to  set  the  shared
              library paths at build-time can be problematic when cross-compiling for example.

       -dpole-zależności
              Dodanie  zależności, które mają być dodane do pola zależności pole-zależności pliku
              kontrolnego   (zależności   dla   tego   pola    są    umieszczane    w    zmiennej
              shlibs:pole-zależności).

              Opcja  -dpole-zależności wpływa na wszystkie pliki wykonywalne podane po tej opcji,
              aż do następnego -dpole-zależności. Domyślnym polem-zależności jest Depends.

              Jeśli to samo określenie zależności (lub zbiór alternatyw) pojawia się w więcej niż
              jednej  nazwie  z  rozróżnianych  pól  zależności Pre-Depends, Depends, Recommends,
              Enhances  lub  Suggests  to  dpkg-shlibdeps  automatycznie  usunie   zależność   ze
              wszystkich pól, poza polem reprezentującym najważniejsze zależności.

       -pprefiks-nazw-zmiennych
              Rozpoczynanie   nazw  zmiennych  podstawiania  od  prefiks-nazw-zmiennych:  zamiast
              shlibs:. Podobnie, wszystkie zmienne rozpoczynające się od  prefiks-nazw-zmiennych:
              (zamiast shlibs:) są usuwane z pliku zmiennych podstawiania.

       -O[filename]
              Print substitution variable settings to standard output (or filename if specified),
              rather than being added to the substitution  variables  file  (debian/substvars  by
              default).

       -ttyp  Preferowanie  informacji  o zależnościach bibliotek współdzielonych oznaczonych dla
              danego typu pakietu. Jeśli informacji oznaczonych nie ma, używane są informacje bez
              oznaczeń.  Domyślnym typem pakietu jest "deb". Informacje o zależnościach bibliotek
              współdzielonych są oznaczane dla danego typu pakietu przez poprzedzenie  ich  nazwą
              typu, dwukropkiem oraz białymi znakami (spacjami).

       -Llokalny-plik-shlibs
              Odczyt  nadpisań informacji o bibliotekach współdzielonych z lokalnego-pliku-shlibs
              zamiast debian/shlibs.local.

       -Tplik-zmiennych-podst
              Zapis zmiennych  podstawiania  w  pliku  plik-zmiennych-podst;  domyślnie  jest  to
              debian/substvars.

       -v     Włączenie dodatkowych informacji. Wyświetlanych jest wiele komunikatów tłumaczących
              działanie dpkg-shlibdeps.

       -xpakiet
              Wyłączenie pakietu z generowanych zależności. Użyteczne aby  zapobiec  zależnościom
              pakietu  od  samego  siebie  dla  pakietów  dostarczających binaria typu ELF (pliki
              wykonywalne lub biblioteki), które zależą od innej biblioteki zawartej w tym  samym
              pakiecie. Ta opcja może być użyta wielokrotnie aby wyłączyć kilka pakietów.

       -Skatalog-budowania-pakietu
              Przeglądanie   najpierw   katalogu-budowania-pakietu   przy   próbie   odnalezienia
              biblioteki. Przydatne gdy pakiet źródłowy tworzy wiele odmian tej samej biblioteki,
              a chce się zapewnić uzyskanie zależności od określonego pakietu binarnego. Ta opcja
              może być użyta wielokrotnie: katalogi będą przeglądane w tej samej kolejności przed
              katalogami innych pakietów binarnych.

       --ignore-missing-info
              Kontynuacja  pomimo braku informacji o zależnościach dla biblioteki współdzielonej.
              Odradza się używanie tej opcji, wszystkie biblioteki powinny dostarczać  informacje
              o  zależnościach  (w postaci plików shlibs lub plików symboli) - nawet jeśli nie są
              jeszcze używane przez inne pakiety.

       --warnings=wartość
              wartość jest polem bitowym definiującym zbiór ostrzeżeń,  które  mogą  być  wysłane
              przez  dpkg-shlibdeps.  Bit  0 (wartość=1) włącza ostrzeżenie "w żadnej z bibliotek
              nie znaleziono symbolu symb używanego przez plik-binarny", bit 1 (wartość=2) włącza
              ostrzeżenie "można by uniknąć zależności od biblioteki bibl", zaś bit 2 (wartość=4)
              włącza ostrzeżenie "plik-binarny nie powinien być linkowany z biblioteką". Domyślną
              wartością  jest 3: pierwsze dwa ostrzeżenia są domyślnie aktywne, zaś ostatnie nie.
              Ustawienie wartości na 7 powoduje aktywację wszystkich ostrzeżeń.

       --admindir=katalog
              Zmienia położenie bazy danych dpkg. Domyślnie jest to /var/lib/dpkg.

       -?, --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.

DIAGNOSTYKA

   Warnings
       Ponieważ dpkg-shlibdeps  analizuje  zbiór  symboli  używanych  przez  każdy  plik  binarny
       generowanego  pakietu,  jest w stanie wysyłać ostrzeżenia w pewnych przypadkach. Informują
       one o rzeczach, które mogą być ulepszone w pakiecie. W większości  przypadków  dotyczy  to
       bezpośrednio  oryginalnych źródeł. Poniżej zebrane są ostrzeżenia na jakie można natrafić,
       w kolejności malejącej ważności:

       w żadnej z bibliotek nie znaleziono symbolu symb używanego przez plik_binarny
              Wskazany symbol nie został  odnaleziony  w  żadnej  z  bibliotek,  z  którymi  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  nierozwiązywalne odniesienie do symbolu sym: prawdopodobnie jest to
       wtyczka
              Wskazany symbol nie został  odnaleziony  w  żadnej  z  bibliotek,  z  którymi  jest
              linkowany   plik   binarny.  Taki  plik_binarny  jest  najpewniej  wtyczką  i  jest
              prawdopodobnie  dostarczany  wraz  z  programem,   który   ładuję   taką   wtyczkę.
              Teoretycznie  wtyczka  nie  powinna  mieć  pola  SONAME, jednak ten plik binarny je
              posiada i nie można go zidentyfikować na tej podstawie.  Fakt,  iż  plik  ten  jest
              umieszczony  w  niepublicznym  katalogu mocno wskazuje na to, że nie jest on zwykłą
              biblioteką współdzieloną. Jeśli  plik  binarny  rzeczywiście  jest  wtyczką,  można
              pominąć  to  ostrzeżenie. Jednak zawsze istnieje możliwość, że jest to biblioteka i
              programy z nią linkowane używają RPATH, aby  dynamiczny  loader  był  w  stanie  ją
              odnaleźć. W takim przypadku bibliotekę można uznać za zepsutą i należy ją naprawić.

       można  by  uniknąć  zależności  od  bibliotekijeżeli  nie byłoby niepotrzebnego linkowania
       pliku-binarnego z nią (nie jest używany żadny z tamtejszych symboli)
              Żaden z plików_binarnych, które są linkowane z biblioteką nie używa  symboli  przez
              nią  udostępnianych.  Poprawiając  wszystkie pliki binarne można uniknąć zależności
              związanych z tą biblioteką (chyba, że taka sama zależność jest  również  generowana
              przez inną bibliotekę, która jest faktycznie używana).

       można  by  uniknąć  zależności  od biblioteki, jeżeli nie byłoby niepotrzebnego linkowania
       plików-binarnych z nią (nie  używane żadne z tamtejszych symboli).
              Dokładnie to samo co powyżej, tylko dla kilku plików binarnych.

       plik-binarny nie powinien być linkowany z biblioteką (nie  używane żadne  z  tamtejszych
       symboli).
              plik_binarny  jest  linkowany  z  biblioteką,  której  nie  potrzebuje. Nie jest to
              problem,  ale  można  uzyskać  pewną  poprawę  wydajności  czasu  ładowania   pliku
              binarnego,  jeśli biblioteka ta nie będzie z nim linkowana. To ostrzeżenie sprawdza
              te same informacje co poprzednie, ale  wykonuje  to  dla  każdego  pliku  binarnego
              zamiast wykonywania globalnego sprawdzenia dla wszystkich analizowanych plików.

   Errors
       dpkg-shlibdeps  przerwie  działanie  z błędem jeśli nie będzie w stanie znaleźć publicznej
       biblioteki używanej przez  plik  binarny,  lub  jeśli  biblioteka  taka  nie  będzie  mieć
       powiązanej  informacji  o  zależnościach  (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  można  znaleźć  biblioteki soname-biblioteki potrzebnej dla pliku_binarnego (RPATH to
       "rpath")
              The binary uses a library called library-soname but dpkg-shlibdeps has been  unable
              to  find  the  library.   dpkg-shlibdeps  creates a list of directories to check as
              following: directories listed in the RPATH of the  binary,  directories  listed  in
              /etc/ld.so.conf,  directories  added  by  the  -l option, directories listed in the
              LD_LIBRARY_PATH  environment  variable,  and  standard  public  directories  (/lib,
              /usr/lib, /lib32, /usr/lib32, /lib64, /usr/lib64). Then it checks those directories
              in the package's build tree of the binary being analyzed, in  the  packages'  build
              trees  indicated  with  the  -S command-line option, in other packages' build trees
              that contains a DEBIAN/shlibs or  DEBIAN/symbols  file  and  finally  in  the  root
              directory.   If  the library is not found in any of those directories, then you get
              this error.

              If the library not found is in a private directory of the same  package,  then  you
              want  to  add the directory with -l. If it's in another binary package being built,
              you want to make sure that the shlibs/symbols  file  of  this  package  is  already
              created  and  that -l contains the appropriate directory if it also is in a private
              directory.

       nie  znaleziono  informacji  o  zależnościach   dla   plik-biblioteki   (używanego   przez
       plik-binarny).
              Biblioteka  wymagana  przez  plik-binarny została znaleziona przez dpkg-shlibdeps w
              pliku-biblioteki,  ale  dpkg-shlibdeps  nie  mógł  odnaleźć  żadnej  informacji   o
              zależnościach  dla  tej  biblioteki.  Aby określić zależności, podjęto próbę użycia
              dpkg -Splik-biblioteki w celu określenia pakietu dostarczającego  daną  bibliotekę.
              Następnie sprawdzono odpowiednie pliki shlibs i pliki symboli w /var/lib/dpkg/info/
              oraz w różnych drzewach budowania pakietów (debian/*/DEBIAN/).

              To niepowodzenie może być spowodowane  przez  niepoprawny  lub  nieistniejący  plik
              shlibs  lub  plik  symboli  w  pakiecie  biblioteki. Może się również zdarzyć jeśli
              biblioteka jest budowana wewnątrz tego samego pakietu źródłowego,  a  pliki  shlibs
              jeszcze  nie  zostały stworzone (w takim przypadku należy poprawić debian/rules aby
              shlibs były tworzone przed wywołaniem dpkg-shlibdeps).  Niewłaściwa  wartość  RPATH
              może  również  powodować,  że  biblioteka zostanie odnaleziona pod nietypową nazwą,
              która      nie      jest      związana      z      żadnym       pakietem       (np.
              /usr/lib/openoffice.org/../lib/libssl.so.0.9.8  zamiast  /usr/lib/libssl.so.0.9.8).
              dpkg-shlibdeps próbuje poradzić sobie z tym starając się odczytać nazwę  kanoniczną
              (z  użyciem  realpath(3))  ale może to nie zawsze zadziałać. Aby uniknąć problemów,
              najlepiej jest zawsze doprowadzić do porządku RPATH pliku binarnego.

              Calling dpkg-shlibdeps in verbose mode (-v)  will  provide  much  more  information
              about  where  it  tried to find the dependency information. This might be useful if
              you don't understand why it's giving you this error.

ZOBACZ TAKŻE

       deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).

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
       Michał Kułach <michal.kulach@gmail.com>, 2012