Provided by: dpkg-dev_1.19.0.5ubuntu2_all bug

BEZEICHNUNG

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

ÜBERSICHT

       dpkg-shlibdeps [Option …] [-e]Programm [Option …]

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:Abhängigkeitsfeld
       hinzugefügt, wobei Abhängigkeitsfeld 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.

   Symboldateien
       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 Symboldatei im Bau-Baum hat Vorrang gegenüber Symboldateien 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).

       Ausgabe von „dpkg-query --control-path Paket symbols“
              Vom  Paket  bereitgestellte  Abhängigkeitsinformationen  für  Laufzeitbibliotheken.
              Falls  nicht  durch  --admindir  überschrieben,  befinden sich solche Dateien unter
              /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.

       Ausgabe von „dpkg-query --control-path Paket shlibs“
              Vom  Paket  bereitgestellte  Abhängigkeitsinformationen  für  Laufzeitbibliotheken.
              Falls  nicht  durch  --admindir  überschrieben,  befinden sich solche Dateien unter
              /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. Diese Option kann mehrfach angegeben werden.

       -lVerzeichnis
              Stellt  Verzeichnis  der  Liste der zu durchsuchenden privaten Laufzeitbibliotheken
              voran (seit Dpkg 1.17.0). Diese Option kann mehrfach angegeben werden.

              Hinweis: Verwenden Sie diese Variable, statt LD_LIBRARY_PATH zu setzten,  da  diese
              Umgebungsvariable  verwandt  wird,  um  den  Laufzeit-Linker  zu  steuern  und  ihr
              Missbrauch  zum  Setzen  von  Pfaden  zu  Laufzeitbibliotheken  zur  Bauzeit   kann
              beispielsweise beim Cross-Übersetzen problematisch werden.

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

              Die  Option  -dAbhängigkeitsfeld  betrifft  alle  Programme,  die  danach angegeben
              werden,   bis   zum   nächsten   -dAbhängigkeitsfeld.    Der    Standardwert    für
              Abhängigkeitsfeld 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.

       -pVariablennamepräfix
              Beginn die  Substitutionsvariablen  mit  Variablennamepräfix:  statt  mit  shlibs:.
              Entsprechend  werden  alle  Substitutionsvariablen,  die  mit  Variablennamepräfix:
              (statt mit shlibs:) beginnen, aus den Substitutionsvariablen entfernt.

       -O[Dateiname]
              Gebe die Variableneinstellung in die Standardausgabe (oder  nach  Dateiname,  falls
              angegeben,  seit  Dpkg  1.17.2)  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
              Leerraumzeichen gesetzt wird.

       -Llokale_shlibs-Datei
              Lese die Hinwegsetz-Abhängigkeiten von Laufzeitbibliotheken aus lokale_shlibs-Datei
              statt aus debian/shlibs.local.

       -TSubstvars-Datei
              Schreibe Substitutionsvariablen in Substvars-Datei; standardmäßig debian/substvars.

       -v     Aktiviere ausführlichen Modus (seit Dpkg 1.14.8).  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 (seit Dpkg 1.14.8). 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 (seit
              Dpkg 1.14.15). 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.

       -IPaketbauverzeichnis
              Ignoriert Paketbauverzeichnis bei  Schauen  nach  Shlibs,  Symbolen  und  gemeinsam
              benutzten  Bibliotheken  (seit  Dpkg  1.18.5).  Sie  können  diese  Option mehrfach
              verwenden.

       --ignore-missing-info
              Falls keine Abhängigkeitsinformationen für die Laufzeitbibliothek  gefunden  werden
              kann,  erfolgt kein Fehlschlag (seit Dpkg 1.14.8). 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 (seit Dpkg 1.14.17). Bit 0 (Wert=1) aktiviert die Warnung
              „Symbol Sym, verwendet von Programm, in keiner der Bibliotheken gefunden.“,  Bit  1
              (Wert=2)  aktiviert  die  Warnung  „Das  Paket  könnte  eine  nutzlose Abhängigkeit
              vermeiden“ 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 (seit Dpkg 1.14.0). Der Standardort ist
              /var/lib/dpkg.

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

       --version
              Gebe die Version aus und beende sich.

DIAGNOSE

   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.

       Das  Paket  könnte  eine  nutzlose  Abhängigkeit  vermeiden,  falls  Programm  nicht gegen
       Bibliothek gelinkt wäre (es verwendet keines der Symbole der Bibliothek).
              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).

       Das Paket könnte  eine  nutzlose  Abhängigkeit  vermeiden,  falls  Programme  nicht  gegen
       Bibliothek gelinkt wären (sie verwenden keines der Symbole der Bibliothek).
              Exakt das gleiche wie die obige Warnung, aber für mehrere Programme.

       Programm   sollte   nicht  gegen  Bibliothek  gelinkt  werden  (es  verwendet  keines  der
       Bibliotheks-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,  durch die Option -l hinzugefügte Verzeichnisse, in der
              Umgebungsvariable        LD_LIBRARY_PATH         aufgeführte         Verzeichnisse,
              Cross-Multiarch-Verzeichnisse              (z.B.              /lib/arm64-linux-gnu,
              /usr/lib/arm64-linux-gnu),   standardmäßige   öffentliche   Verzeichnisse    (/lib,
              /usr/lib),    in    /etc/ld.so.conf   aufgeführte   Verzeichnisse   und   veraltete
              Multilib-Verzeichnisse (/lib32, /usr/lib32,  /lib64,  /usr/lib64).  Dann  prüft  es
              diese   Verzeichnisse   im  Bau-Baum  des  analysierten  Pakets,  in  den  mit  der
              Befehlszeilenoption   -S    angegebenen    Paketbauverzeichnissen,    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 mit -l 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 -l  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 Symboldateien 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/openoffice.org/../lib/libssl.so.0.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 detaillierten Modus (-v)
              erhalten werden. Dies kann nützlich sein, falls Sie nicht verstehen, warum es Ihnen
              diesen Fehler meldet.

SIEHE AUCH

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

ÜBERSETZUNG

       Die    deutsche    Übersetzung    wurde    2004,    2006-2017    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.