So listen Sie Abhängigkeiten eines Pakets in Ubuntu auf
Im Gegensatz zu Windows, macOS und Android wird Software auf Ubuntu – und Linux im Allgemeinen – nicht als einzelnes Paket verteilt. Stattdessen lädt der Paketmanager Ihres Systems beim Installieren einer Anwendung mehrere Pakete herunter, einschließlich des Hauptanwendungspakets und seiner Abhängigkeiten. Dies gilt jedoch nur für die traditionelle Paketinstallation unter Linux, dh die Verwendung von Paketmanagern.
Zu wissen, welche zusätzlichen Abhängigkeiten während einer Installation heruntergeladen werden, kann sowohl für Anfänger als auch für fortgeschrittene Benutzer von Vorteil sein. Auf diese Weise hat man die vollständige Kontrolle über die auf seinem System installierten Pakete.
Schauen wir uns an, wie Sie die Abhängigkeiten eines Pakets unter Ubuntu überprüfen können.
Was sind Paketabhängigkeiten?
Abhängigkeiten sind unterstützende Pakete, die für das ordnungsgemäße Funktionieren einer Anwendung unter Linux erforderlich sind. Wenn Sie beispielsweise den VLC Media Player auf Ubuntu herunterladen möchten, installiert APT zusätzlich zum primären Paket „ vlc “ einige zusätzliche Pakete wie libc6 und gcc . Eine Abhängigkeit kann auch andere Pakete als Abhängigkeiten haben und somit eine hierarchische Struktur bilden.
Da Linux-Pakete voneinander abhängig sind, erfordert fast jede Software zusätzliche Pakete, die Sie auf Ihrem System installieren müssen.
Obwohl Paketmanager wie APT die Verwaltung und Installation dieser Abhängigkeiten automatisieren, treten Fehler auf, wenn Sie versuchen, das Paket manuell aus der Quelle zu erstellen. Sie können solche Fehler jedoch beheben, indem Sie einfach die erforderliche Abhängigkeit auf Ihrem System mit dem Befehl apt install installieren .
So überprüfen Sie Paketabhängigkeiten in Linux
Glücklicherweise gibt es unter Ubuntu mehrere Möglichkeiten, eine Liste der Abhängigkeiten eines Pakets zu erhalten. APT, der standardmäßige Paketmanager in Ubuntu- und Debian-basierten Distributionen, bietet mehrere Befehle, um abhängigkeitsbezogene Informationen eines Pakets zu erhalten.
Verwenden des APT-Paketmanagers
Sie können APT in Ubuntu verwenden, um eine Liste der mit einem Paket verbundenen Abhängigkeiten abzurufen. Die grundlegende Syntax des Befehls lautet:
sudo apt depends packagename
Um beispielsweise Abhängigkeiten für das rhythmbox- Paket zu überprüfen:
sudo apt depends rhythmbox
Neben der Liste der Abhängigkeiten enthält die Ausgabe auch empfohlene und vorgeschlagene Pakete, die Sie zusammen mit rhythmbox installieren können .
Alternativ können Sie auch den Befehl apt-cache verwenden , um dieselbe Ausgabe zu erhalten.
sudo apt-cache depends rhythmbox
Um zusätzliche Informationen zu einem bestimmten Paket abzurufen, verwenden Sie die show -Methode anstelle von abhängig .
sudo apt show rhythmbox
sudo apt-cache show rhythmbox
Ausgabe:
Auflisten von Abhängigkeiten mit dpkg
Wenn Sie ein DEB-Paket auf Ihr System heruntergeladen haben und wissen möchten, welche Abhängigkeiten zusammen mit dem Paket installiert werden, können Sie das Flag -I ( großes i, nicht kleingeschriebenes L) oder –info mit dem Befehl verwenden.
sudo dpkg -I /path/to/package.deb
sudo dpkg --info /path/to/package.deb
…wobei /path/to/package.deb der absolute oder relative Pfad zur DEB-Datei ist.
Die Ausgabe zeigt die Größe des Pakets, die Quelle und andere nützliche Informationen zusammen mit der Liste der Abhängigkeiten an.
Um die Liste der Abhängigkeiten für ein installiertes Paket abzurufen, verwenden Sie das Flag -s mit dpkg. Zum Beispiel:
sudo dpkg -s firefox
Ausgabe:
Verwenden von apt-rdepends
Um eine detailliertere Ausgabe zu erhalten, können Sie das Dienstprogramm apt-rdepends verwenden. Da es auf den meisten Linux-Distributionen nicht vorinstalliert ist, müssen Sie es mit APT manuell auf Ubuntu installieren.
sudo apt install apt-rdepends
Verwenden Sie das folgende Befehlsformat, um den Abhängigkeitsbaum für ein Paket abzurufen:
apt-rdepends packagename
Zum Beispiel:
apt-rdepends vlc
Ausgabe:
Die generierte Ausgabe ist im Allgemeinen lang, da apt-rdepends einen vollständigen hierarchischen Baum von Abhängigkeiten anzeigt, was bedeutet, dass Sie auch die Liste der Abhängigkeiten einer Abhängigkeit erhalten.
Sie können auch eine Liste von Paketen abrufen, die von einem bestimmten Paket abhängen. Um beispielsweise zu überprüfen, welche Pakete libc als Abhängigkeit benötigen:
apt-rdepends -r libc
Ausgabe:
Das umgekehrte Dienstprogramm
Obwohl die umgekehrte Abhängigkeitsfunktion (das Flag -r ) von apt-rdepends besser funktioniert als erwartet, gibt es noch ein weiteres Dienstprogramm, das Sie verwenden können, um umgekehrte Abhängigkeiten eines Pakets zu extrahieren. Der reverse-depends-Befehl ist Teil des ubuntu-dev-tools- Pakets und kann heruntergeladen werden mit:
sudo apt install ubuntu-dev-tools
Die Standardsyntax des Befehls lautet:
reverse-depends options packagename
…wobei Optionen die Flags sind, die Sie mit dem Befehl verwenden können und Paketname der Name des Pakets ist, für das Sie die Abhängigkeiten umkehren möchten.
Sie können dem oben genannten Befehl auch verschiedene Flags hinzufügen, um die Ausgabe zu ändern. Hier ist eine Liste der nützlichsten Optionen:
- -R : Nur direkte Abhängigkeiten auflisten (keine vorgeschlagenen oder empfohlenen Pakete)
- -s : Vorgeschlagene Pakete einschließen
- -l : Präsentieren Sie die Ausgabe in einem saubereren Format, das für die Verwendung in Skripten geeignet ist
Falls Sie nicht wissen , wie Sie das Tool verwenden, und Befehlszeilenhilfe benötigen , verwenden Sie das Flag –help oder -h .
reverse-depends -h
reverse-depends --help
Abrufen der Abhängigkeitsliste mithilfe einer simulierten Installation/Entfernung
Für diejenigen, die eine kurze Liste aller Abhängigkeiten wünschen, die derzeit nicht auf dem System installiert sind, können Sie eine simulierte Installation (oder Deinstallation) eines bestimmten Pakets ausführen.
Um beispielsweise die vom PHP-Paket benötigten Abhängigkeiten zu überprüfen, führen Sie den folgenden Befehl aus:
sudo apt install -s php
Die Ausgabe enthält einen Abschnitt "Die folgenden zusätzlichen Pakete werden installiert". Alle weiter aufgelisteten Paketnamen sind Abhängigkeiten, die auf Ihrem System nicht gefunden wurden.
Wenn Sie eine Liste der Abhängigkeiten für ein bereits auf Ubuntu installiertes Paket erhalten möchten, können Sie eine simulierte Deinstallation durchführen, um zu überprüfen, welche zusätzlichen Pakete damit entfernt werden.
sudo apt remove -s packagename
Beispiel:
sudo apt remove -s rhythmbox
Ausgabe:
Linux-Pakete sind voneinander abhängig
Wie Sie aus diesem Handbuch ziemlich gut entnehmen können, hängt fast jedes Linux-Paket von einem anderen Paket ab. Das Hauptprinzip hinter diesem Konzept ist, dass auf Linux-basierten Betriebssystemen jedes Paket eine einzelne Aufgabe erfüllen soll, und zwar gut.
Wenn ein Paket für die Verwaltung von Audiodiensten entwickelt wurde, listen andere Programme dieses Paket einfach als ihre Abhängigkeit auf und verwenden es, um ihre Audioanforderungen zu erfüllen.
Falls mehrere Anwendungen dasselbe Paket erfordern, wird es nur einmal auf dem System installiert, wodurch Datenredundanz verhindert und Speicherplatz auf der Festplatte gespart wird. Sie können auch mit APT eine Liste aller derzeit auf Ihrem System installierten Pakete abrufen.