So überprüfen Sie die Abhängigkeiten eines Pakets in Ubuntu/Debian-basierten Linux-Distributionen

Die Installation von Anwendungen über die Befehlszeile ist in Ubuntu/Debian recht einfach. Alles, was Sie tun müssen, ist apt install package_name zu verwenden.

Aber was ist, wenn Sie die Abhängigkeiten eines Pakets vor oder nach der Installation wissen möchten?

In diesem Tutorial zeige ich Ihnen verschiedene Möglichkeiten, die Abhängigkeiten eines Pakets in Ubuntu und anderen Debian-basierten Linux-Distributionen zu sehen, die verwenden APT-Paketverwaltungssystem.

Was ist Paketabhängigkeit in Ubuntu?

Falls Sie es noch nicht wussten: Wenn Sie ein Softwarepaket unter Linux installieren, benötigt es manchmal andere Pakete, um richtig zu funktionieren. Diese zusätzlichen Pakete werden Abhängigkeiten genannt. Wenn diese Abhängigkeitspakete nicht auf dem System installiert sind, wird es normalerweise automatisch mit dem Paket installiert.

Für example, das GUI-Tool HandBrake zum Konvertieren von Videoformaten benötigt FFmpeg, GStreamer. Für HandBrake sind FFmpeg und GStreamer also die Abhängigkeiten.

Wenn diese Pakete nicht auf Ihrem System installiert sind, werden sie automatisch installiert, wenn Sie HandBrake unter Ubuntu installieren.

Abhängigkeiten eines Pakets in Ubuntu- und Debian-basierten Distributionen prüfen

Wie es bei Linux oft der Fall ist, gibt es mehrere Möglichkeiten, um das gleiche Ergebnis zu erzielen. Sehen wir uns verschiedene Möglichkeiten an, um die Abhängigkeiten eines Pakets anzuzeigen.

Abhängigkeiten mit apt show prüfen

Sie können den Befehl apt show verwenden, um Details eines Pakets anzuzeigen. Ein Teil dieser Informationen sind Abhängigkeiten und Sie können sie in der Zeile sehen, die mit Depends beginnt.

Für example, Folgendes wird für das Paket ubuntu-restricted-extras angezeigt.

[email protected]:~$ apt show ubuntu-restricted-extras
Package: ubuntu-restricted-extras
Version: 67
Priority: optional
Section: multiverse/metapackages
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 14.3 kB
Depends: ubuntu-restricted-addons
Recommends: libavcodec-extra, ttf-mscorefonts-installer, unrar
Download-Size: 3,200 B
APT-Manual-Installed: yes
APT-Sources: https://us.archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages
Description: Commonly used media codecs and fonts for Ubuntu
This collection of packages includes:
- MP3 and other audio codec software to play various audio formats
(GStreamer plugins)
- software to install the Microsoft Web fonts
- the Adobe Flash plugin
- LAME, software to create compressed audio files.
.
This software does not include libdvdcss2, and will not let you play
encrypted DVDs. For more information, see
https://help.ubuntu.com/community/RestrictedFormats/PlayingDVDs
.
These software packages are from the Multiverse channel, restricted by
copyright or legal issues in some countries. For more information, see
https://www.ubuntu.com/ubuntu/licensing

Wie Sie sehen, hängt das Paket ubuntu-restricted-extras vom Paket ubuntu-restricted-addons ab.

Hier ist ein Haken! Das Abhängigkeitspaket kann auch von einem anderen Paket abhängen und die Kette könnte weitergehen. Zum Glück erledigt dies der APT-Paketmanager für Sie, indem er (meistens) automatisch alle Abhängigkeiten installiert.

Was ist das empfohlene Paket?

Ist Ihnen die Zeile aufgefallen, die in der obigen Ausgabe mit Empfehlungen beginnt?

Empfohlene Pakete sind keine direkten Abhängigkeiten für das Paket, aber sie ermöglichen zusätzliche Funktionen.

Wie Sie sehen können, enthält ubuntu-restricted-extras ttf-mscorefonts-installer als empfohlenes Paket für die Installation von Microsoft Fonts auf Ubuntu.

Die empfohlenen Pakete werden auch standardmäßig installiert und wenn Sie die Installation des empfohlenen Pakets explizit verbieten möchten, verwenden Sie das Flag –no-install-recommends wie folgt:

sudo apt install –no-install-recommends package_name

Verwenden Sie apt-cache, um nur die Abhängigkeitsinformationen zu erhalten

Die apt-Show enthält viel zu viele Informationen. Wenn Sie die Abhängigkeiten in einem Skript abrufen möchten, erhalten Sie mit dem Befehl apt-cache eine bessere und saubere Ausgabe.

apt-cache depends package_name

Die Ausgabe sieht sehr sauber aus, oder?

Überprüfen Sie die Abhängigkeiten einer DEB-Datei mit dpkg

Sowohl der apt- als auch der apt-cache-Befehl funktionieren mit den Paketen, die in den Repositorys verfügbar sind. Wenn Sie jedoch eine DEB-Datei herunterladen, funktionieren diese Befehle nicht.

In diesem Fall können Sie den Befehl dpkg mit der Option -I oder –info verwenden.

dpkg -I path_to_deb_file

Die Abhängigkeiten sind in der Zeile zu sehen, die mit Depends beginnt.

Abhängigkeiten prüfen und Abhängigkeiten umkehren mit apt-rdepends

Wenn Sie mehr Details zu den Abhängigkeiten wünschen, können Sie das Tool apt-rdepends verwenden. Dieses Tool erstellt den vollständigen Abhängigkeitsbaum. Sie erhalten also die Abhängigkeit eines Pakets und auch die Abhängigkeiten der Abhängigkeiten.

Es ist kein regulärer apt-Befehl und Sie müssen ihn aus dem Universe-Repository installieren:

sudo apt install apt-rdepends

Die Ausgabe ist normalerweise ziemlich groß, abhängig vom Abhängigkeitsbaum.

Reading package lists... Done
Building dependency tree
Reading state information... Done
shutter
Depends: procps
Depends: xdg-utils
imagemagick
Depends: imagemagick-6.q16 (>= 8:6.9.2.10+dfsg-2~)
imagemagick-6.q16
Depends: hicolor-icon-theme
Depends: libc6 (>= 2.4)
Depends: libmagickcore-6.q16-6 (>= 8:6.9.10.2)
Depends: libmagickwand-6.q16-6 (>= 8:6.9.10.2)
hicolor-icon-theme
libc6
Depends: libcrypt1 (>= 1:4.4.10-10ubuntu4)
Depends: libgcc-s1
libcrypt1
Depends: libc6 (>= 2.25)

Das apt-rdepends-Tool ist sehr vielseitig. Es kann auch die umgekehrten Abhängigkeiten berechnen. Das heißt, Sie können sehen, welche anderen Pakete von einem bestimmten Paket abhängen.

apt-rdepends -r package_name

Die Ausgabe könnte ziemlich groß sein, da sie den umgekehrten Abhängigkeitsbaum ausgibt.

[email protected]:~$ apt-rdepends -r ffmpeg
Reading package lists... Done
Building dependency tree
Reading state information... Done
ffmpeg
Reverse Depends: ardour-video-timeline (>= 1:5.12.0-3ubuntu4)
Reverse Depends: deepin-screen-recorder (5.0.0-1build2)
Reverse Depends: devede (4.15.0-2)
Reverse Depends: dvd-slideshow (0.8.6.1-1)
Reverse Depends: green-recorder (>= 3.2.3)

Ich hoffe, dieses kurze Tutorial war hilfreich, um Ihre Befehlszeilenkenntnisse ein wenig zu verbessern. Bleiben Sie dran für mehr solcher Tipps.