Provided by: dpkg-dev_1.22.18ubuntu3_all bug

BEZEICHNUNG

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

ÜBERSICHT

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

BESCHREIBUNG

       dpkg-shlibdeps berechnet Abhängigkeiten von Laufzeitbibliotheken für Programme, deren Namen als Argument
       übergeben werden. Die Abhängigkeiten werden zu der Datei der Ersetzungsvariablen 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 die Shlibs-Datei (falls Erstere nicht existiert oder 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
       (höchste) 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  oder
       Build-Depends-Packages  enthalten.  dpkg-shlibdeps  entnimmt  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 werden 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  denn,  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
           Nimmt Abhängigkeiten auf, 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 setzen,  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-Kompilieren problematisch werden.

       -dAbhängigkeitsfeld
           Fügt Abhängigkeiten hinzu, die zum 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.

       --package=Paket
           Definiert den Paketnamen.

           Wenn angegeben wird der Paketname verwandt, um die Vorgaben, basierend auf  den  Binärpaket-Metadaten
           in debian/control, zu ändern.

           Falls   das  Paket  Essential:  yes,  dann  ist  das  standardmäßige  Abhängigkeitsfeld  Pre-Depends,
           andernfalls Depends. Der Standard-Pakettyp wird aus dem Feld Package-Type gesetzt. Das Paket wird  zu
           der Gruppe der mit -x ausgeschlossenen Pakete hinzugefügt.

           Option unterstützt seit Dpkg 1.22.7.

       -pVariablennamepräfix
           Beginnt  die Ersetzungsvariablen mit Variablennamepräfix: statt mit shlibs:. Entsprechend werden alle
           Ersetzungsvariablen,  die  mit  Variablennamepräfix:  (statt   mit   shlibs:)   beginnen,   aus   der
           Ersetzungsvariablendatei entfernt.

       -O[Dateiname]
           Gibt die Ersetzungsvariableneinstellung in die Standardausgabe (oder nach Dateiname, falls angegeben,
           seit  Dpkg  1.17.2)  aus, statt sie zu der Ersetzungsvariablendatei (standardmäßig (debian/substvars)
           hinzuzufügen.

       -tTyp
           Bevorzugt  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
           Liest die  Hinwegsetz-Abhängigkeiten  von  Laufzeitbibliotheken  aus  lokale_shlibs-Datei  statt  aus
           debian/shlibs.local.

       -TSubstvars-Datei
           Schreibt Ersetzungsvariablen in Substvars-Datei; standardmäßig debian/substvars.

       -v  Aktiviert  ausführlichen  Modus (seit Dpkg 1.14.8). Eine Vielzahl von Meldungen wird angezeigt, um zu
           erklären, was dpkg-shlibdeps durchführt.

       -xPaket
           Schließt 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 verwendet, um Abhängigkeiten des Pakets zu  sich  selbst  zu  vermeiden.
           Diese Option kann mehrfach verwendet werden, um mehrere Pakete auszuschließen.

       -SPaketbauverzeichnis
           Schaut  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 beim 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 abgeraten, 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|Zeichenkette[,…]]
           Wählt die Gruppe der Warnungen, die von dpkg-shlibdeps ausgegeben werden kann (seit Dpkg 1.14.17).

           Die Warnungen können aus einer Kommata-getrennten Liste  von  symbolischen  Namen  ausgewählt  werden
           (seit Dpkg 1.22.12) oder aus einem Wert, der ein Bitfeld für diese Warnungen bezeichnet.

           symbol-not-found (Symbol nicht gefunden, Bit 0, Wert 1)
               Wählt die Warnung „Symbol Sym, verwendet von Programm, in keiner der Bibliotheken gefunden“.

               Standardmäßig aktiviert.

           avoidable-dependency (Vermeidbare Abhängigkeit, Bit 1, Wert 2)
               Wählt die Warnung „Das Paket könnte eine nutzlose Abhängigkeit vermeiden“.

               Standardmäßig aktiviert.

           useless-linkage (nutzloses Linken, Bit 2, Wert 4)
               Wählt die Warnung „Programm sollte nicht gegen Bibliothek gelinkt werden“.

       --admindir=Verz
           Ändert den Ablageort der dpkg-Datenbank (seit Dpkg 1.14.0). Der Standardort ist /var/lib/dpkg.

       -?, --help
           Zeigt einen Hinweis zum Aufruf und beendet das Programm.

       --version
           Gibt die Version aus und beendet das Programm.

UMGEBUNG

       DEB_HOST_ARCH
           Setzt  die  Host-Architektur.  Dies  betrifft Objekte und Symboldateien, nach denen gesucht wird, und
           ihre standardmäßigen Suchpfadnamen.

       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 Unterstützung
           für Internationalisierung (oder i18n) 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. eine 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 das -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-substvars(5), deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).

ÜBERSETZUNG

       Die deutsche Übersetzung wurde 2004, 2006-2025 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.22.18                                            2025-04-28                                  dpkg-shlibdeps(1)