Wie man prüft, ob eine Bibliothek in Linux installiert ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie prüfen können, ob eine bestimmte Bibliothek (library) auf Ihrem Linux-System installiert ist. Sie werden verschiedene Methoden erkunden, um dies zu erreichen. Zunächst listen Sie die verfügbaren Shared Libraries (gemeinsam genutzte Bibliotheken) mit ldconfig -p auf, um zu verstehen, welche Bibliotheken vorhanden sind und wo sich ihre Dateien befinden.

Danach nutzen Sie den Befehl dpkg -l, um das Paket (package) zu identifizieren, das einer bestimmten Bibliothek zugeordnet ist. Dies gibt Ihnen Einblicke in die Verwaltung von Bibliotheken im Paketmanager des Systems. Abschließend lernen Sie, wie Sie die gängigen Bibliotheksverzeichnisse wie /usr/lib direkt untersuchen, um manuell die Existenz von Bibliotheksdateien zu überprüfen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/InputandOutputRedirectionGroup -.-> linux/pipeline("Data Piping") linux/PackagesandSoftwaresGroup -.-> linux/software("Linux Software") subgraph Lab Skills linux/ls -.-> lab-558728{{"Wie man prüft, ob eine Bibliothek in Linux installiert ist"}} linux/less -.-> lab-558728{{"Wie man prüft, ob eine Bibliothek in Linux installiert ist"}} linux/cd -.-> lab-558728{{"Wie man prüft, ob eine Bibliothek in Linux installiert ist"}} linux/grep -.-> lab-558728{{"Wie man prüft, ob eine Bibliothek in Linux installiert ist"}} linux/pipeline -.-> lab-558728{{"Wie man prüft, ob eine Bibliothek in Linux installiert ist"}} linux/software -.-> lab-558728{{"Wie man prüft, ob eine Bibliothek in Linux installiert ist"}} end

Auflisten von Bibliotheken mit ldconfig -p

In diesem Schritt lernen Sie, wie Sie die auf Ihrem Linux-System verfügbaren Shared Libraries (gemeinsam genutzten Bibliotheken) mit dem Befehl ldconfig auflisten können.

Shared Libraries sind Code-Sammlungen, die von mehreren Programmen genutzt werden können. Dies spart Plattenplatz und Arbeitsspeicher, da der Code nicht in jedem Programm dupliziert werden muss.

Der Befehl ldconfig wird hauptsächlich zur Konfiguration der dynamischen Linker-Runtime-Bindungen verwendet. Wenn er mit der Option -p verwendet wird, gibt er die Liste der Verzeichnisse und der in den Cache gespeicherten Kandidaten-Bibliotheken aus.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist. Sie können dies tun, indem Sie auf das Symbol Xfce Terminal auf der linken Seite Ihres Desktops klicken.

Geben Sie jetzt den folgenden Befehl ein und drücken Sie die Eingabetaste:

ldconfig -p

Dieser Befehl gibt eine lange Liste der auf Ihrem System gefundenen Shared Libraries aus. Die Ausgabe sieht in etwa so aus:

...
        libzstd.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libzstd.so.1
        libz.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libz.so.1
        libxml2.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so.2
        libxml2.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so
        libxslt.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libxslt.so.1
...

Die Ausgabe zeigt den Bibliotheksnamen, die Architektur, für die sie entwickelt wurde (z. B. x86-64), und den Pfad zur Bibliotheksdatei auf dem System.

Da die Ausgabe sehr lang ist, möchten Sie sie möglicherweise an einen Pager wie less weiterleiten, um sie seitenweise anzuzeigen. Verwenden Sie dazu das Pipe-Symbol |:

ldconfig -p | less

Drücken Sie die Leertaste, um eine Seite nach unten zu scrollen, b, um eine Seite nach oben zu scrollen, und q, um less zu beenden.

Dieser Befehl ist nützlich, um zu sehen, welche Bibliotheken verfügbar sind und wo sich ihre Dateien befinden.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Prüfen des Bibliothekspakets mit dpkg -l

Im vorherigen Schritt haben Sie die Shared Libraries (gemeinsam genutzten Bibliotheken) aufgelistet. Jetzt lernen wir, wie Sie herausfinden können, zu welchem Paket (package) eine bestimmte Bibliothek gehört, indem Sie den Befehl dpkg verwenden.

dpkg ist der Paketmanager für Debian-basierte Systeme wie Ubuntu. Er wird zum Installieren, Entfernen und Verwalten von .deb-Paketen verwendet. Die Option -l listet die installierten Pakete auf.

Um ein bestimmtes Paket zu finden, können wir dpkg -l mit grep kombinieren, um die Ausgabe zu filtern. Lassen Sie uns nach Paketen suchen, die mit der xml2-Bibliothek zusammenhängen, die wir in der Ausgabe von ldconfig -p gesehen haben.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

dpkg -l | grep xml2

Dieser Befehl listet alle installierten Pakete (dpkg -l) auf und filtert dann diese Liste, um nur die Zeilen anzuzeigen, die "xml2" enthalten (grep xml2).

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

ii  libxml2:amd64                      <version>                     amd64        GNOME XML library
ii  libxml2-dev:amd66                  <version>                     amd64        Development files for the GNOME XML library
...

Die Ausgabe liefert Informationen über das Paket:

  • Die ersten beiden Zeichen (ii) geben den Paketstatus (installiert) an.
  • Der Paketname (z. B. libxml2:amd64).
  • Die Versionsnummer.
  • Die Architektur (z. B. amd64).
  • Eine kurze Beschreibung des Pakets.

Dies ist eine leistungsstarke Methode, um zu ermitteln, welches Softwarepaket eine bestimmte Bibliotheksdatei bereitstellt. Dies ist sehr nützlich für die Fehlerbehebung oder das Verständnis von Abhängigkeiten.

Klicken Sie auf Weiter, um fortzufahren.

Untersuchung von Bibliotheksdateien in /usr/lib

In diesem letzten Schritt werden wir das Verzeichnis erkunden, in dem viele Shared Libraries (gemeinsam genutzte Bibliotheken) gespeichert sind: /usr/lib.

Das Verzeichnis /usr in Linux enthält Programme und Daten auf Benutzerebene. Das Unterverzeichnis /usr/lib enthält speziell Shared Libraries, die für das Booten des Systems nicht essentiell sind, aber von Anwendungen benötigt werden.

Zunächst wechseln wir unser aktuelles Verzeichnis in /usr/lib. Dazu verwenden wir den Befehl cd.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cd /usr/lib

Jetzt befinden Sie sich im Verzeichnis /usr/lib. Um den Inhalt dieses Verzeichnisses anzuzeigen, verwenden Sie den Befehl ls. Da dieses Verzeichnis viele Dateien enthält, leiten wir die Ausgabe erneut an less weiter.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

ls | less

Sie werden eine lange Liste von Dateien und Verzeichnissen sehen. Viele der Dateien, die mit .so enden, sind Shared Libraries. Möglicherweise sehen Sie auch Verzeichnisse wie x86_64-linux-gnu, die architektur-spezifische Bibliotheken enthalten.

Drücken Sie die Leertaste, um nach unten zu scrollen, und q, um less zu beenden.

Lassen Sie uns nach der libxml2-Bibliotheksdatei suchen, über die wir in den vorherigen Schritten gesprochen haben. Wir können ls mit grep verwenden, um sie im aktuellen Verzeichnis (/usr/lib) zu finden.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

ls | grep libxml2

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die die libxml2-Bibliotheksdateien und symbolischen Links anzeigt:

libxml2.so
libxml2.so.2
libxml2.so.2.<version>

Die .so-Dateien sind die eigentlichen Shared Libraries, und die Dateien ohne Versionsnummer (wie libxml2.so) sind oft symbolische Links, die auf die eigentliche Bibliotheksdatei mit der Versionsnummer verweisen.

Sie können den Befehl readlink verwenden, um zu sehen, auf welche Datei ein symbolischer Link verweist. Beispielsweise:

readlink libxml2.so

Dies zeigt Ihnen die eigentliche Datei, auf die libxml2.so verweist, die die vollständige Versionsnummer enthält.

libxml2.so.2

In diesem Schritt haben Sie gelernt, wie Sie zu einem üblichen Bibliotheksverzeichnis navigieren und dessen Inhalt mit cd, ls und grep untersuchen können. Das Verständnis, wo Bibliotheken gespeichert sind, ist für die Systemadministration und die Entwicklung von entscheidender Bedeutung.

Klicken Sie auf Weiter, um das Lab (Labor) abzuschließen.

Zusammenfassung

In diesem Lab (Labor) haben Sie gelernt, wie Sie mithilfe verschiedener Methoden prüfen können, ob eine Bibliothek in Linux installiert ist. Sie haben begonnen, indem Sie die verfügbaren Shared Libraries (gemeinsam genutzten Bibliotheken) und ihre Speicherorte mit dem Befehl ldconfig -p aufgelistet haben und dessen Rolle bei der Verwaltung der dynamischen Linker-Bindungen (dynamic linker bindings) verstanden haben.

Anschließend haben Sie untersucht, wie Sie mithilfe des Befehls dpkg -l, einem wichtigen Werkzeug zur Verwaltung von Debian-Paketen, das Paket (package) ermitteln können, zu dem eine bestimmte Bibliothek gehört. Schließlich haben Sie gelernt, wie Sie übliche Bibliotheksverzeichnisse wie /usr/lib direkt untersuchen können, um manuell die Existenz von Bibliotheksdateien zu überprüfen. Diese Schritte bieten einen umfassenden Ansatz zur Bestimmung des Installationsstatus von Bibliotheken auf einem Linux-System.