blob: b8be7711a75116db04792b66d28ba2b1daaac3ca [file] [log] [blame]
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH dpkg\-shlibdeps 1 2011\-08\-14 Debian\-Projekt dpkg\-Hilfsprogramme
.SH NAME
dpkg\-shlibdeps \- erstelle Substvar\-Abhängigkeiten für Laufzeitbibliotheken
.
.SH ÜBERSICHT
\fBdpkg\-shlibdeps\fP [\fIOption\fP...] [\fB\-e\fP]\fIProgramm\fP [\fIOption\fP...]
.
.SH BESCHREIBUNG
\fBdpkg\-shlibdeps\fP berechnet Abhängigkeiten von Laufzeitbibliotheken für
Programme, deren Name als Argument übergeben werden. Die Abhängigkeiten
werden zu der Datei der Substitutionsvariablen \fBdebian/substvars\fP als
Variablennamen \fBshlibs:\fP\fIAbhängigkeitsfeld\fP hinzugefügt, wobei
\fIAbhängigkeitsfeld\fP der Feldname einer Abhängigkeit ist. Alle anderen
Variablen, die mit \fBshlibs:\fP beginnen, werden aus der Datei entfernt.
.P
\fBdpkg\-shlibdeps\fP hat zwei mögliche Informationsquellen zur Erstellung der
Abhängigkeitsinformationen. Entweder \fISymbol\fP\- oder
\fIShlibs\fP\-Dateien. \fBdpkg\-shlibdeps\fP findet für jedes Programm, das es
analysiert, die Bibliotheken heraus, gegen die es gelinkt ist. Bei jeder
Bibliothek schaut es entweder in die \fISymbol\fP\- oder in in \fIShlibs\fP\-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/\fIPaket\fP.\fISymbol\fP oder
/var/lib/dpkg/info/\fIPaket\fP.\fIShlibs\fP 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 \fBld.so\fP),
dann wird \fBdpkg \-S \fP\fIBibliotheksdatei\fP verwendet, um das Paket, das die
Bibliothek bereitstellt, zu ermitteln.
.SS 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):
.IP debian/*/DEBIAN/symbols
Informationen über Laufzeitbibliotheken, die vom aktuellen Bauprozess
erstellt werden, der auch \fBdpkg\-shlibdeps\fP aufruft. Sie werden von
\fBdpkg\-gensymbols\fP(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.
.IP /etc/dpkg/symbols/\fIPaket\fP.symbols.\fIArchitektur\fP
.IP /etc/dpkg/symbols/\fIPaket\fP.symbols
Systemabhängige Überschreibung der Abhängigkeitsinformationen von
Laufzeitbibliotheken. \fIArchitektur\fP ist die Architektur des aktuellen
Systems (ermittelt durch \fBdpkg\-architecture \-qDEB_HOST_ARCH\fP).
.IP "Ausgabe von \(lq\fBdpkg\-query \-\-control\-path\fP \fIPaket\fP symbols\(rq"
Vom Paket bereitgestellte Abhängigkeitsinformationen für
Laufzeitbibliotheken. Falls nicht durch \-\-admindir überschrieben, befinden
sich solche Dateien unter /var/lib/dpkg.
.P
Während des Durchsuchens aller vom Programm verwendeten Symbole erinnert
sich \fBdpkg\-shlibdeps\fP 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 \fISymbol\fP\-Dateien sind korrekt).
.P
Als Sicherheitsmaßnahme kann eine Symbols\-Datei ein Meta\-Informationsfeld
\fIBuild\-Depends\-Package\fP enthalten. \fBdpkg\-shlibdeps\fP 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.
.SS 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.
.P
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:
.IP debian/shlibs.local
Paket\-beschränkte Überschreibung der Abhängigkeitsinformationen von
Laufzeitbibliotheken.
.IP /etc/dpkg/shlibs.override
Systemabhängige Überschreibung der Abhängigkeitsinformationen von
Laufzeitbibliotheken.
.IP debian/*/DEBIAN/shlibs
Informationen über Laufzeitbibliotheken, die vom aktuellen Bauprozess
erstellt werden, der auch \fBdpkg\-shlibdeps\fP 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.
.IP "Ausgabe von \(lq\fBdpkg\-query \-\-control\-path\fP \fIPaket\fP shlibs\(rq"
Vom Paket bereitgestellte Abhängigkeitsinformationen für
Laufzeitbibliotheken. Falls nicht durch \-\-admindir überschrieben, befinden
sich solche Dateien unter /var/lib/dpkg.
.IP /etc/dpkg/shlibs.default
Systemabhängige Vorgaben für Abhängigkeitsinformationen von
Laufzeitbibliotheken.
.P
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).
.SH OPTIONEN
\fBdpkg\-shlibdeps\fP interpretiert nicht\-Options\-Argumente als Namen von
ausführbaren Programmen, als ob diese mit \fB\-e\fP\fIProgramm\fP übergeben worden
wären.
.TP
\fB\-e\fP\fIProgramm\fP
Abhängigkeiten aufnehmen, die für von \fIProgramm\fP benötigte
Laufzeitbibliotheken angemessen sind.
.TP
\fB\-d\fP\fIAbhängigkeitsfeld\fP
Füge Abhängigkeiten hinzu, die zum Abhängigkeitsfeld \fIAbhängigkeitsfeld\fP
der Steuerdatei hinzugefügt werden sollen. (Die Abhängigkeiten für dieses
Feld werden in die Variable \fBshlibs:\fP\fIAbhängigkeitsfeld\fP geschrieben.)
Die Option \fB\-d\fP\fIAbhängigkeitsfeld\fP betrifft alle Programme, die danach
angegeben werden, bis zum nächsten \fB\-d\fP\fIAbhängigkeitsfeld\fP. Der
Standardwert für \fIAbhängigkeitsfeld\fP ist \fBDepends\fP.
Falls der gleiche Abhängigkeitseintrag (oder ein Satz von Alternativen) mehr
als einmal in den erkannten Abhängigkeitsfeldnamen \fBPre\-Depends\fP,
\fBDepends\fP, \fBRecommends\fP, \fBEnhances\fP oder \fBSuggests\fP auftaucht, wird
\fBdpkg\-shlibdeps\fP die Abhängigkeit von allen Feldern außer dem, das die
wichtigsten Abhängigkeiten repräsentiert, entfernen.
.TP
\fB\-p\fP\fIVariablennamepräfix\fP
Beginn die Substitutionsvariablen mit \fIVariablennamepräfix\fP\fB:\fP statt mit
\fBshlibs:\fP. Entsprechend werden alle Substitutionsvariablen, die mit
\fIVariablennamepräfix\fP\fB:\fP (statt mit \fBshlibs:\fP) beginnen, aus den
Substitutionsvariablen entfernt.
.TP
\fB\-O\fP
Gebe die Variableneinstellung in die Standardausgabe aus, statt sie zu der
Substitutionsvariablendatei (standardmäßig (\fBdebian/substvars\fP)
hinzuzufügen.
.TP
\fB\-t\fP\fITyp\fP
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.
.TP
\fB\-L\fP\fIlokalshlibsdatei\fP
Lese die Hinwegsetz\-Abhängigkeiten von Laufzeitbibliotheken aus
\fIlokalshlibsdatei\fP statt aus \fBdebian/shlibs.local\fP.
.TP
\fB\-T\fP\fIsubstvardatei\fP
Schreibe Substitutionsvariablen in \fISubstvardatei\fP; standardmäßig
\fBdebian/substvars\fP.
.TP
\fB\-v\fP
Aktiviere ausführlichen Modus. Eine Vielzahl von Nachrichten wird angezeigt,
um zu erklären, was \fBdpkg\-shlibdeps\fP durchführt.
.TP
\fB\-x\fP\fIPaket\fP
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.
.TP
\fB\-S\fP\fIPaketbauverzeichnis\fP
Schaue beim Versuch, eine Bibliothek zu finden, zuerst in
\fIPaketbauverzeichnis\fP. 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.
.TP
\fB\-\-ignore\-missing\-info\fP
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.
.TP
\fB\-\-warnings=\fP\fIWert\fP
\fIWert\fP ist ein Bitfeld, das den Satz an Warnungen definiert, die von
\fBdpkg\-shlibdeps\fP ausgegeben werden können. Bit 0 (Wert=1) aktiviert die
Warnung »Symbol \fISym\fP, verwendet von \fIProgramm\fP, in keiner der
Bibliotheken gefunden.«, Bit 1 (Wert=2) aktiviert die Warnung »Abhängigkeit
von \fIBibliothek\fP könnte vermieden werden« und Bit 2 (Wert=4) aktiviert die
Warnung »\fIProgramm\fP sollte nicht gegen \fIBibliothek\fP gelinkt
werden«. Standardmäßig ist \fIWert\fP 3: die ersten zwei Warnungen sind
standardmäßig aktiv, die letzte nicht. Setzten Sie \fIWert\fP auf 7, falls Sie
möchten, dass alle Warnungen aktiv sein sollen.
.TP
\fB\-\-admindir=\fP\fIVerz\fP
Ändert den Ablageort der \fBdpkg\fP\-Datenbank. Der Standardort ist
\fI/var/lib/dpkg\fP.
.TP
\fB\-h\fP, \fB\-\-help\fP
Zeige den Bedienungshinweis und beende.
.TP
\fB\-\-version\fP
Gebe die Version aus und beende sich.
.
.SH WARNUNGEN
Da \fBdpkg\-shlibdeps\fP 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:
.TP
\fBSymbol\fP \fI Symbol\fP\fB, verwendet von \fP\fIProgramm\fP\fB, in keiner der Bibliotheken gefunden.\fP
Das angegebene Symbol wurde nicht in den Bibliotheken gefunden, gegen die
das Programm gelinkt wurde. \fIProgramm\fP ist höchstwahrscheinlich eine
Bibliothek und muss mit zusätzlichen Bibliotheken während des Bau\-Prozesses
gelinkt werden (Option \fB\-l\fP\fIBibliothek\fP des Linkers).
.TP
\fIProgramm\fP\fB enthält eine nicht\-auflösbare Referenz auf Symbol \fP\fISym\fP\fB: wahrscheinlich eine Erweiterung\fP.
Das angegebene Symbol wurde nicht in den Bibliotheken gefunden, die mit
diesem Programm verlinkt sind. Das \fIProgamm\fP 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.
.TP
\fBAbhängigkeit von \fP\fIBibliothek\fP\fB könnte vermieden werden, falls \fP\fIProgramm\fP\fB nicht unnötigerweise dagegen gelinkt wäre (es verwendet keines seiner Symbole.\fP
Keines der \fIProgramme\fP die gegen \fIBibliothek\fP 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).
.TP
\fIProgramm\fP\fB sollte nicht gegen \fP\fIBibliothek\fP\fB gelinkt werden (es verwendet keines ihrer Symbole).\fP
Das \fIProgramm\fP 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.
.SH FEHLER
\fBdpkg\-shlibdeps\fP 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.\fIX\fP). Eine private Bibliothek (wie z.B. ein
Erweiterung) sollte keinen SONAME haben und braucht nicht versioniert zu
sein.
.TP
\fBkonnte Bibliothek \fP\fISONAME\-der\-Bibliothek\fP\fB benötigt von \fP\fIProgramm\fP\fB nicht finden (ihr RPATH ist »\fP\fIrpath\fP\fB«).\fP
Das \fIProgramm\fP verwendet eine Bibliothek mit Namen
\fISONAME\-der\-Bibliothek\fP, aber \fBdpkg\-shlibdeps\fP konnte diese Bibliothek
nicht finden. \fBdpkg\-shlibdeps\fP 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 angelegt ist und dass LD_LIBRARY_PATH das geeignete
Verzeichnis enthält, falls die Bibliothek zudem in einem privaten
Verzeichnis liegt.
.TP
\fBKeine Abhängigkeitsinformationen für \fP\fIBibliotheksdatei\fP\fB (verwendet von \fP\fIProgramm\fP\fB) gefunden.\fP
Die von \fIProgramm\fP benötigte Bibliothek wurde von \fBdpkg\-shlibdeps\fP in
\fIBibliotheksdatei\fP gefunden, allerdings konnte \fBdpkg\-shlibdeps\fP keine
Abhängigkeitsinformationen für diese Bibliothek ermitteln. Um die
Abhängigkeit herauszufinden, hat es versucht, die Bibliothek mittels \fBdpkg
\-S \fP\fIBibliotheksdatei\fP 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
\fBdpkg\-shlibdeps\fP 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;
\fBdpkg\-shlibdeps\fP versucht dies zu umgehen, indem es auf einen kanonischen
Namen (mittels \fBrealpath\fP(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 \fBdpkg\-shlibdeps\fP im
geschwätzigen Modus (\-v) erhalten werden. Dies kann nützlich sein, falls Sie
nicht verstehen, warum es Ihnen diesen Fehler meldet.
.SH ÜBERSETZUNG
Die deutsche Übersetzung wurde 2004, 2006-2011 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.
.SH "SIEHE AUCH"
\fBdeb\-shlibs\fP(5), \fBdeb\-symbols\fP(5), \fBdpkg\-gensymbols\fP(1).
.
.SH AUTOREN
Copyright \(co 1995\-1996 Ian Jackson
.br
Copyright \(co 2000 Wichert Akkerman
.br
Copyright \(co 2006 Frank Lichtenheld
.br
Copyright \(co 2007\-2008 Rapha\[:e]l Hertzog
.sp
Dies ist Freie Software; lesen Sie die GNU General Public License Version 2
oder neuer für die Kopierbedingungen. Es gibt KEINE Haftung.