Lernen Sie die Abhängigkeitsverwaltung mit dem Befehl ldd kennen, um Ihren Linux-Computer und die installierten Pakete besser zu verwalten.

Die Verwaltung von Abhängigkeiten ist ein wesentlicher Bestandteil der Wartung Ihres Linux-Systems. Software ist komplex und basiert auf einer Vielzahl gemeinsam genutzter Bibliotheken und Dateien. Manchmal ist es schwierig, den Überblick über die von einer Anwendung benötigten Dateien zu behalten.

Hier kommt der Befehl ldd unter Linux ins Spiel. ldd ist ein einfallsreiches Befehlszeilentool, mit dem Sie die von einer Anwendung benötigten Abhängigkeiten gemeinsamer Objekte verfolgen können.

Erfahren Sie, wie Sie den Befehl ldd zu Ihrem Vorteil nutzen und ein Profi im Verwalten von Abhängigkeiten unter Linux werden können!

Was sind Paketabhängigkeiten?

Software ist nicht nur ein eigenständiger Quellcode, sondern eine Mischung aus nativem Quellcode und geliehenem Code aus externen Bibliotheken. Wenn diese Bibliotheken und andere gemeinsam genutzte Objekte in Ihrem System fehlen, kann es zu Fehlfunktionen einer davon abhängigen Anwendung kommen oder sie lässt sich einfach nicht starten.

instagram viewer

Alle diese gemeinsam genutzten Dateien, Pakete, Bibliotheken usw. werden unter Linux kumulativ als Abhängigkeiten bezeichnet. Obwohl diese kurze Definition Ihnen eine grobe Vorstellung von Abhängigkeiten vermittelt, ist das tatsächliche Bild etwas komplexer, und deshalb ist es wichtig, es zu lernen was Paketabhängigkeiten sind ausführlich.

Was ist der Befehl ldd und wie funktioniert er?

ldd ist eine Abkürzung für List Dynamic Dependencies. Wie der Name schon sagt, listet ldd alle von einer Anwendung benötigten gemeinsamen Objekte auf.

Es funktioniert durch Aufrufen des dynamischen Linkers mit spezieller Einstellung Umgebungsvariablen. Wenn Sie ldd mit dem Speicherort einer Binärdatei ausführen, wird eine Ausgabe zurückgegeben, die die Liste der Abhängigkeiten, ihren Speicherort und einen Hexadezimalwert enthält, der angibt, wo im Speicher sie geladen werden.

Gemeinsam genutzte Objektabhängigkeiten mit dem Befehl ldd finden

Nachdem Sie nun eine klare Vorstellung davon haben, worum es bei ldd geht, wollen wir uns an die Arbeit machen und lernen, wie Sie damit Softwareabhängigkeiten finden können.

Bevor Sie lernen, wie man ldd verwendet, überprüfen Sie zunächst, ob es auf Ihrem System installiert ist, indem Sie die installierte Version von ldd ausdrucken:

ldd --version

Wenn es zurückkommt ein „Befehl nicht gefunden“-Fehler, müssen Sie zuerst ldd installieren.

Führen Sie auf Ubuntu- und Debian-basierten Systemen Folgendes aus:

sudo apt install libc-bin

Für Arch-basierte Distributionen:

sudo pacman -S glibc

Auf RHEL und Fedora:

sudo dnf installiere glibc-common

Wenn ldd installiert ist, können Sie sich nun darauf konzentrieren, die Verwendung zu erlernen. Hier ist die grundlegende Syntax für den ldd-Befehl:

ldd binärer_Speicherort

Falls Sie den Speicherort der Binärdatei nicht kennen, können Sie eine davon verwenden viele Linux-Befehlszeilenoperatoren und kombinieren Sie die Ausgabe des Befehls which mit ldd, um die Abhängigkeiten für das Paket zu finden:

ldd -flag $(welcher Binärname)

Der Befehl ldd bietet vier verschiedene Optionen zum Ändern der Ausgabe. Sie sind:

  • -v: Druckt eine ausführliche Ausgabe einschließlich zusätzlicher Informationen wie Versionsinformationen für jede Abhängigkeit
  • -u: Druckt alle nicht verwendeten Abhängigkeiten, d. h. Abhängigkeiten, die geladen, aber nicht implementiert sind
  • -D: Druckt fehlende Objekte und führt Verschiebungen durch
  • -R: Druckt fehlende Objekte und Funktionen und führt Verschiebungen durch

Verwalten von Paketabhängigkeiten unter Linux

Mit ldd in Ihrem Software-Arsenal können Sie Probleme im Zusammenhang mit der Abhängigkeit gemeinsamer Objekte in Ihrer Anwendung beheben.

Da ldd außerdem den Speicherort einer Bibliothek ausgibt, können Sie eine Anwendung debuggen und besser verstehen, wie eine bestimmte Bibliothek implementiert wird. ldd druckt auch die Versionen der gemeinsam genutzten Bibliotheken aus, die in einer Anwendung verwendet werden.

Mit dieser Funktion können Sie Ihre Anwendungen auf potenzielle Schwachstellen im Zusammenhang mit einer veralteten Version einer gemeinsam genutzten Bibliothek überprüfen.

Abhängigkeitsmanagement ist eine Kernkompetenz, die für die Gesundheit Ihres Linux-Systems von entscheidender Bedeutung ist. Allerdings kann es manchmal vorkommen, dass ein Paket kaputt geht, obwohl alle seine Abhängigkeiten fehlerfrei sind. Es ist wichtig, dass Sie wissen, wie Sie defekte Pakete finden und reparieren.