Provided by: dpkg-dev_1.15.5.6ubuntu4_all bug

NAME

       dpkg-shlibdeps      -      erstelle     Substvar-Abhängigkeiten     für
       Laufzeitbibliotheken

ÜBERSICHT

       dpkg-shlibdeps [Optionen] Programm|-eProgramm [Optionen]

BESCHREIBUNG

       dpkg-shlibdeps berechnet Abhängigkeiten  von  Laufzeitbibliotheken  für
       Programme, deren Name als Argument übergeben werden. Die Abhängigkeiten
       werden zu der Datei  der  Substitutionsvariablen  debian/substvars  als
       Variablennamen      shlibs:Abhngigkeitsfeld     hinzugefügt,     wobei
       Abhngigkeitsfeld der Feldname einer  Abhängigkeit  ist.  Alle  anderen
       Variablen, die mit shlibs: beginnen, werden aus der Datei entfernt.

       dpkg-shlibdeps hat zwei mögliche Informationsquellen zur Erstellung der
       Abhängigkeitsinformationen.  Entweder  Symbol-   oder   Shlibs-Dateien.
       dpkg-shlibdeps  findet  für  jedes  Programm,  das  es  analysiert, die
       Bibliotheken heraus, gegen die es gelinkt  ist.  Bei  jeder  Bibliothek
       schaut  es  entweder  in  die  Symbol-  oder  in in Shlibs-Datei (falls
       erstere nicht existiert odr falls  debian/shlibs.local  die  relevanten
       Abhängigkeiten enthält). Beide Dateien sollten von dem Bibliothekspaket
       bereitgestellt      werden      und       sollten       daher       als
       /var/lib/dpkg/info/Paket.Symbol   oder  /var/lib/dpkg/info/Paket.Shlibs
       verfügbar sein. Der Paketname wird  in  zwei  Schritten  identifiziert:
       zuerst wird die Bibliotheksdatei auf dem System gefunden (durch Prüfung
       der  gleichen  Verzeichnisse  wie  bei  ld.so),  dann  wird   dpkg   -S
       Bibliotheksdatei   verwendet,   um   das   Paket,  das  die  Bibliothek
       bereitstellt, zu ermitteln.

   Symbol-Dateien
       Symboldateien  enthalten  feiner-granulare  Abhängigkeitsinformationen,
       indem   sie  die  Minimalabhängigkeit  für  jedes  von  der  Bibliothek
       exportierte Symbol beschreiben. Das Skript versucht,  eine  Symboldatei
       die  zu  dem Bibliothekspaket gehört, an den folgenden Orten zuzuordnen
       (der erste Treffer wird verwendet):

       debian/*/DEBIAN/symbols
              Informationen  über  Laufzeitbibliotheken,  die  vom   aktuellen
              Bauprozess erstellt werden, der auch dpkg-shlibdeps aufruft. Sie
              werden  von  dpkg-gensymbols(1)   erstellt.   Sie   werden   nur
              verwendet,  falls die Bibliothek im Bau-Baum des Pakets gefunden
              wird.  Die  Symbol-Datei  im  Bau-Baum  hat  Vorrang   gegenüber
              Symbol-Dateien aus anderen Binärpaketen.

       /etc/dpkg/symbols/Paket.symbols.Architektur

       /etc/dpkg/symbols/Paket.symbols
              Systemabhängige  Überschreibung  der  Abhängigkeitsinformationen
              von Laufzeitbibliotheken. Architektur ist  die  Architektur  des
              aktuellen    Systems    (ermittelt    durch    dpkg-architecture
              -qDEB_HOST_ARCH).

       adminverz/info/Paket.symbols
              Vom   Paket   bereitgestellte   Abhängigkeitsinformationen   für
              Laufzeitbibliotheken.  Falls  nicht überschrieben, ist adminverz
              /var/lib/dpkg.

       Während  des  Durchsuchens  aller  vom  Programm  verwendeten   Symbole
       erinnert  sich  dpkg-shlibdeps  an  die  größte Minimalversion, die von
       jeder Bibliothek benötigt wird. Am Ende des Prozesses  ist  es  in  der
       Lage,  die  minimale  Abhängigkeit  für  jede eingesetzte Bibliothek zu
       schreiben (vorausgesetzt, die Informationen in den Symbol-Dateien  sind
       korrekt).

       Als     Sicherheitsmaßnahme     kann     eine     Symbols-Datei     ein
       Meta-Informationsfeld Build-Depends-Package  enthalten.  dpkg-shlibdeps
       extrahiert  dann  die  minimale Version, die von dem korrespondierenden
       Paket im Feld Build-Depends benötigt wird, und verwendet diese Version,
       falls  sie höher ist als die minimale Version, die beim Durchsuchen der
       Symbole ermittelt wurde.

   Shlibs-Dateien
       Shlibs-Dateien ordnen Bibliotheken direkt Abhängigkeiten zu  (ohne  auf
       die  Symbole zu schauen). Daher ist dies oft stärker als benötigt, aber
       dafür sicher und leicht zu handhaben.

       Die Abhängigkeiten für eine Bibliothek wird  an  verschiedenen  Stellen
       nachgeschlagen.  Die erste Datei, die Informationen für die betrachtete
       Bibliothek bereitstellt, wird verwendet:

       debian/shlibs.local
              Paket-beschränkte Überschreibung der  Abhängigkeitsinformationen
              von Laufzeitbibliotheken.

       /etc/dpkg/shlibs.override
              Systemabhängige  Überschreibung  der  Abhängigkeitsinformationen
              von Laufzeitbibliotheken.

       debian/*/DEBIAN/shlibs
              Informationen  über  Laufzeitbibliotheken,  die  vom   aktuellen
              Bauprozess erstellt werden, der auch dpkg-shlibdeps aufruft. Sie
              werden nur verwendet, falls die  Bibliothek  im  Bau-Verzeichnis
              eines   Pakets   gefunden   wird.  Die  Shlibs-Datei  in  diesem
              Bau-Verzeichnis  hat  gegenüber   Shlibs-Dateien   von   anderen
              Binärpaketen Vorrang.

       Adminverz/info/Paket.shlibs
              Vom   Paket   bereitgestellte   Abhängigkeitsinformationen   für
              Laufzeitbibliotheken. Falls nicht überschrieben,  ist  adminverz
              /var/lib/dpkg.

       /etc/dpkg/shlibs.default
              Systemabhängige   Vorgaben  für  Abhängigkeitsinformationen  von
              Laufzeitbibliotheken.

       Die extrahierten Abhängigkeiten werden direkt verwendet  (es  sei  den,
       sie  werden  als  Dubletten herausgefiltert oder sie sind schwächer als
       eine andere Abhängigkeit).

OPTIONEN

       dpkg-shlibdeps  interpretiert  nicht-Options-Argumente  als  Namen  von
       ausführbaren  Programmen,  als ob diese mit -eProgramm übergeben worden
       wären.

       -eProgramm
              Abhängigkeiten  aufnehmen,  die  für  von   Programm   benötigte
              Laufzeitbibliotheken angemessen sind.

       -dAbhngigkeitsfeld
              Füge    Abhängigkeiten    hinzu,   die   zum   Abhängigkeitsfeld
              Abhngigkeitsfeld der  Steuerdatei  hinzugefügt  werden  sollen.
              (Die  Abhängigkeiten  für  dieses  Feld  werden  in die Variable
              shlibs:Abhngigkeitsfeld geschrieben.)

              Die Option  -dAbhngigkeitsfeld  betrifft  alle  Programme,  die
              danach  angegeben  werden, bis zum nächsten -dAbhngigkeitsfeld.
              Der Standardwert für Abhngigkeitsfeld ist Depends.

              Falls  der  gleiche  Abhängigkeitseintrag  (oder  ein  Satz  von
              Alternativen)    mehr    als    einmal    in    den    erkannten
              Abhängigkeitsfeldnamen   Pre-Depends,    Depends,    Recommends,
              Enhances   oder  Suggests  auftaucht,  wird  dpkg-shlibdeps  die
              Abhängigkeit von allen Feldern außer dem,  das  die  wichtigsten
              Abhängigkeiten repräsentiert, entfernen.

       -pVariablennameprfix
              Beginn die Substitutionsvariablen mit Variablennameprfix: statt
              mit shlibs:. Entsprechend  werden  alle  Substitutionsvariablen,
              die  mit  Variablennameprfix: (statt mit shlibs:) beginnen, aus
              den Substitutionsvariablen entfernt.

       -O     Gebe die Variableneinstellung in die Standardausgabe aus,  statt
              sie    zu    der    Substitutionsvariablendatei   (standardmäßig
              (debian/substvars) hinzuzufügen.

       -tTyp  Bevorzuge Abhängigkeitsinformationen  für  Laufzeitbibliotheken,
              die  für  ein  vorgegebenes  Paket  markiert  sind.  Falls keine
              Markierungsinformation verfügbar ist, fällt dies auf unmarkierte
              Informationen   zurück.   Der   Standard-Pakettyp   ist   »deb«.
              Abhängigkeitsinformationen für Laufzeitbibliotheken  werden  für
              einen  vorgegebenen  Typ  markiert,  indem vor sie der Namen des
              Typs, ein Doppelpunkt und ein Leerzeichen gesetzt wird.

       -Llokalshlibsdatei
              Lese die Hinwegsetz-Abhängigkeiten von Laufzeitbibliotheken  aus
              lokalshlibsdatei statt aus debian/shlibs.local.

       -Tsubstvardatei
              Schreibe  Substitutionsvariablen in Substvardatei; standardmäßig
              debian/substvars.

       -v     Aktiviere ausführlichen Modus.  Eine  Vielzahl  von  Nachrichten
              wird angezeigt, um zu erklären, was dpkg-shlibdeps durchführt.

       -xPaket
              Schließe  das Paket von den generierten Abhängigkeiten aus. Dies
              ist für Pakete nützlich, die ELF-Programmdateien (Programme oder
              Bibliothekserweiterungen)  bereitstellen, die eine Bibliothek im
              gleichen Paket verwenden, um selbst-Abhängigkeiten zu vermeiden.
              Diese  Option  kann mehrfach verwendet werden, um mehrere Pakete
              auszuschließen.

       -SPaketbauverzeichnis
              Schaue beim  Versuch,  eine  Bibliothek  zu  finden,  zuerst  in
              Paketbauverzeichnis.  Dies  ist  nützlich,  wenn  das Quellpaket
              mehrere  Spielarten  der  gleichen  Bibliothek  baut   und   Sie
              sicherstellen  wollen,  dass  Sie  die  Abhängigkeit  aus  einem
              bestimmten Binärpaket erhalten. Sie können diese Option mehrfach
              verwenden:  Verzeichnisse werden in der gleichen Reihenfolge vor
              Verzeichnissen anderer Binärpakete probiert.

       --ignore-missing-info
              Falls     keine     Abhängigkeitsinformationen      für      die
              Laufzeitbibliothek    gefunden   werden   kann,   erfolgt   kein
              Fehlschlag. Von der Verwendung dieser Option wird abgearten,  da
              alle   Bibliotheken   Abhängigkeitsinformationen   bereitstellen
              sollten    (entweder    über    shlibs-Dateien     oder     über
              symbols-Dateien),  selbst  falls  diese  noch  nicht von anderen
              Paketen verwendet werden.

       --warnings=Wert
              Wert ist ein Bitfeld, das den Satz an Warnungen  definiert,  die
              von  dpkg-shlibdeps  ausgegeben  werden  können.  Bit 0 (Wert=1)
              aktiviert die Warnung »Symbol Sym, verwendet  von  Programm,  in
              keiner der Bibliotheken gefunden.«, Bit 1 (Wert=2) aktiviert die
              Warnung »Abhängigkeit von Bibliothek  könnte  vermieden  werden«
              und  Bit 2 (Wert=4) aktiviert die Warnung »Programm sollte nicht
              gegen Bibliothek gelinkt werden«. Standardmäßig ist Wert 3:  die
              ersten  zwei  Warnungen  sind  standardmäßig  aktiv,  die letzte
              nicht. Setzten Sie Wert auf 7,  falls  Sie  möchten,  dass  alle
              Warnungen aktiv sein sollen.

       --admindir=Verz
              Ändert  den  Ablageort  der  dpkg-Datenbank. Der Standardort ist
              /var/lib/dpkg.

       -h, --help
              Zeige den Bedienungshinweis und beende.

       --version
              Gebe die Version aus und beende sich.

WARNUNGEN

       Da dpkg-shlibdeps den Symbolsatz, der von jedem Programm des erstellten
       Pakets  verwendet  wird,  analysiert,  ist es in mehreren Fällen in der
       Lage, Warnungen auszugeben. Sie informieren  Sie  über  Dinge,  die  im
       Paket verbessert werden können. Meistens betreffen diese Verbesserungen
       direkt die Quellen der Originalautoren. In der Reihenfolge  abnehmender
       Wichtigkeit  folgen  hier  die  relevanten  Warnungen,  die  auftauchen
       könnten:

       Symbol  Symbol, verwendet von  Programm,  in  keiner  der  Bibliotheken
       gefunden.
              Das angegebene Symbol wurde nicht in den Bibliotheken  gefunden,
              gegen   die   das   Programm   gelinkt   wurde.   Programm   ist
              höchstwahrscheinlich eine Bibliothek und muss  mit  zusätzlichen
              Bibliotheken  während  des  Bau-Prozesses gelinkt werden (Option
              -lBibliothek des Linkers).

       Programm  enthält  eine  nicht-auflösbare  Referenz  auf  Symbol   Sym:
       wahrscheinlich eine Erweiterung.
              Das angegebene Symbol wurde nicht in den Bibliotheken  gefunden,
              die   mit   diesem  Programm  verlinkt  sind.  Das  Progamm  ist
              höchstwahrscheinlich eine Erweiterung und das  Symbol  wird  von
              dem   Programm   bereitgestellt,  das  diese  Erweiterung  lädt.
              Theoretisch verfügt eine Erweiterung nicht über  einen  SONAMEn,
              allerdings  ist  dies  bei  diesem  Programm  der Fall und daher
              konnte es nicht eindeutig als Erweiterung  erkannt  werden.  Die
              Tatsache,  dass  dieses  Programm  in  einem  nicht-öffentlichen
              Verzeichnis  gespeichert  wird  ist   allerdings   ein   starkes
              Anzeichen  dafür,  dass  es  keine  normale  gemeinsam  benutzte
              Bibliothek  ist.  Falls   dieses   Programm   tatsächlich   eine
              Erweiterung  ist, ignorieren Sie die Warnung. Allerdings besteht
              immer die Möglichkeit, dass es eine  echte  Bibliothek  ist  und
              dass  Programme,  die damit verlinken, einen RPATH verwenden, so
              dass der dynamische Lader sie findet. In  diesem  Fall  ist  die
              Bibliothek beschädigt und muss repariert werden.

       Abhängigkeit  von  Bibliothek  könnte  vermieden werden, falls Programm
       nicht unnötigerweise dagegen gelinkt wäre (es verwendet  keines  seiner
       Symbole.
              Keines der Programme die gegen Bibliothek gelinkt sind verwendet
              eines der von der Bibliothek bereitgestellten Symbole. Indem Sie
              die  Programme korrigierten, vermieden Sie die Abhängigkeit, die
              mit  dieser  Bibliothek  verbunden  ist  (es   sei   denn,   die
              Abhängigkeit  wird  auch durch eine andere Bibliothek generiert,
              die diese Bibliothek wirklich verwendet).

       Programm sollte nicht gegen Bibliothek  gelinkt  werden  (es  verwendet
       keines ihrer Symbole).
              Das Programm ist gegen eine Bibliothek  gelinkt,  die  es  nicht
              benötigt.  Das  ist  kein  Problem, aber bei der Ladezeit können
              kleine  Leistungsverbesserungen  erreicht  werden,  indem  diese
              Bibliothek  nicht  in  das  Programm gelinkt wird. Diese Warnung
              überprüft die  gleichen  Informationen  wie  die  vorhergehende,
              allerdings  für jedes Programm statt global für alle überprüften
              Programme.

FEHLER

       dpkg-shlibdeps wird fehlschlagen, falls es eine vom Programm verwendete
       öffentliche  Bibliothek  nicht  finden kann oder falls diese Bibliothek
       keine  zugeordneten  Abhängigkeitsinformationen  hat   (entweder   eine
       Shlibs-  oder  Symbols-Datei).  Eine  öffentliche  Bibliothek hat einen
       SONAME und ist versioniert (libirgendwas.so.X). Eine private Bibliothek
       (wie z.B. ein Erweiterung) sollte keinen SONAME haben und braucht nicht
       versioniert zu sein.

       konnte Bibliothek SONAME-der-Bibliothek  benötigt  von  Programm  nicht
       finden (ihr RPATH ist »rpath«).
              Das   Programm   verwendet    eine    Bibliothek    mit    Namen
              SONAME-der-Bibliothek,    aber   dpkg-shlibdeps   konnte   diese
              Bibliothek nicht finden. dpkg-shlibdeps erstellt  folgendermaßen
              eine   Liste  der  zu  prüfenden  Verzeichnisse:  im  RPATH  des
              Programms   aufgeführte   Verzeichnisse,   in    /etc/ld.so.conf
              aufgeführte     Verzeichnisse,    in    der    Umgebungsvariable
              LD_LIBRARY_PATH  aufgeführte  Verzeichnisse  und  standardmäßige
              öffentliche  Verzeichnisse  (/lib, /usr/lib, /lib32, /usr/lib32,
              /lib64,  /usr/lib64).  Dann  prüft  es  diese  Verzeichnisse  im
              Bau-Baum    des    analysierten   Pakets,   in   den   mit   der
              Kommandozeilenoption -S  angegebenen  Paketbauverzeichnisse,  in
              anderen    Paketbau-Bäumen,   die   eine   DEBIAN/shlibs-   oder
              DEBIAN/symbols-Datei    enthalten     und     schließlich     im
              Wurzelverzeichnis.  Falls  die  Bibliothek nicht in einem dieser
              Verzeichnisse gefunden wird, erhalten Sie diesen Fehler.

              Falls sich die nicht  gefundene  Bibliothek  in  einem  privaten
              Verzeichnis   des  gleichen  Pakets  befindet,  müssen  Sie  das
              Verzeichnis zu LD_LIBRARY_PATH hinzufügen.  Falls  sie  sich  in
              einem  anderen  gerade  zu  bauenden  Paket befindet, müssen Sie
              sicherstellen, dass  die  »shlibs/symbols«-Datei  dieses  Pakets
              bereits  angelegt  ist  und  dass  LD_LIBRARY_PATH das geeignete
              Verzeichnis  enthält,  falls  die  Bibliothek  zudem  in   einem
              privaten Verzeichnis liegt.

       Keine  Abhängigkeitsinformationen  für  Bibliotheksdatei (verwendet von
       Programm) gefunden.
              Die  von  Programm benötigte Bibliothek wurde von dpkg-shlibdeps
              in Bibliotheksdatei gefunden, allerdings  konnte  dpkg-shlibdeps
              keine Abhängigkeitsinformationen für diese Bibliothek ermitteln.
              Um  die  Abhängigkeit  herauszufinden,  hat  es  versucht,   die
              Bibliothek mittels dpkg -S Bibliotheksdatei auf ein Debian-Paket
              abzubilden. Dann  überprüfte  es  die  zugehörigen  Shlibs-  und
              Symbol-Dateien  in  /var/lib/dpkg/info/  und  die  verschiedenen
              Paketbaubäume ((debian/*/DEBIAN/).

              Dieser Fehlschlag kann durch defekte oder fehlende Shlibs-  oder
              Symboldateien  im  Paket  der  Bibliothek  ausgelöst  werden. Er
              könnte  auch  auftreten,  falls  die  Bibliothek   im   gleichen
              Quellpaket  gebaut wird und die Shlibs-Datei noch nicht angelegt
              wurde (wobei Sie in diesem Fall debian/rules korrigieren müssen,
              damit   die  Shlibs-Datei  erstellt  wird  bevor  dpkg-shlibdeps
              aufgerufen wird). Defekte RPATH können auch  dazu  führen,  dass
              die  Bibliothek  unter  nicht-kanonischen  Namen  gefunden  wird
              (beispielsweise
              /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libssl.so.9.8
              statt /usr/lib/libssl.so.0.9.8), so dass dann diese keinem Paket
              zugeordnet  ist;  dpkg-shlibdeps versucht dies zu umgehen, indem
              es   auf   einen   kanonischen   Namen   (mittels   realpath(3))
              zurückfällt,    allerdings    könnte    dies    manchmal   nicht
              funktionieren. Es ist immer am besten, den RPATH zu  bereinigen,
              um Probleme zu vermeiden.

              Viele     weitere     Informationen     darüber,     wo     nach
              Abhängigkeitsinformationen  gesucht  wird,  können  durch  einen
              Aufruf  von  dpkg-shlibdeps im geschwätzigen Modus (-v) erhalten
              werden. Dies kann nützlich  sein,  falls  Sie  nicht  verstehen,
              warum es Ihnen diesen Fehler meldet.

ÜBERSETZUNG

       Die  deutsche  Übersetzung  wurde  2004, 2006-2009 von Helge Kreutzmann
       <debian@helgefjell.de>, 2007 von Florian Rehnisch  <eixman@gmx.de>  und
       2008  von Sven Joachim <svenjoac@gmx.de> angefertigt. Diese Übersetzung
       ist Freie Dokumentation; lesen  Sie  die  GNU  General  Public  License
       Version 2 oder neuer für die Kopierbedingungen.  Es gibt KEINE HAFTUNG.

SIEHE AUCH

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

AUTOREN

       Copyright © 1995-1996 Ian Jackson
       Copyright © 2000 Wichert Akkerman
       Copyright © 2006 Frank Lichtenheld
       Copyright © 2007-2008 Raphaël Hertzog

       Dies ist Freie Software; lesen  Sie  die  GNU  General  Public  License
       Version  2 oder neuer für die Kopierbedingungen. Es gibt KEINE Haftung.