Provided by: dpkg-dev_1.19.0.5ubuntu2.4_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.

1.19.0.5                                           2022-05-25                                  dpkg-shlibdeps(1)