Provided by: dpkg-dev_1.14.20ubuntu6_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).   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).

       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  erstellt  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 erstellt
              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-2008 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 (C) 1995-1996 Ian Jackson
       Copyright (C) 2000 Wichert Akkerman
       Copyright (C) 2006 Frank Lichtenheld
       Copyright (C) 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.