Provided by: dpkg-dev_1.19.7ubuntu3.2_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  entnommenen  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.

UMGEBUNG

       DPKG_COLORS
              Setzt  den  Farbmodus  (seit  Dpkg  1.18.5). Die derzeit unterstützten Werte sind: auto (Vorgabe),
              always und never.

       DPKG_NLS
              Falls dies  gesetzt  ist,  wird  es  zur  Entscheidung,  ob  Native  Language  Support,  auch  als
              Internationalisierung  (oder  i18n)  Unterstützung bekannt, aktiviert wird (seit Dpkg 1.19.0). Die
              akzeptierten Werte sind: 0 und 1 (Vorgabe).

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-2019 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.7                                             2022-05-25                                  dpkg-shlibdeps(1)