Comment vérifier les dépendances d’un paquet dans les distributions Linux basées sur Ubuntu/Debian

L’installation d’applications via la ligne de commande est assez simple dans Ubuntu/Debian. Tout ce que vous avez à faire est d’utiliser apt install package_name.

Mais que faire si vous voulez connaître les dépendances d’un paquet avant ou après son installation ?

Dans ce didacticiel, je vais vous montrer différentes manières de voir les dépendances d’un paquet dans Ubuntu et d’autres distributions Linux basées sur Debian qui utilisent Système de gestion de paquets APT.

Qu’est-ce que la dépendance de paquet dans Ubuntu ?

Si vous ne le saviez pas déjà, lorsque vous installez un package logiciel sous Linux, il a parfois besoin d’autres packages pour fonctionner correctement. Ces packages supplémentaires sont appelés dépendances. Si ces packages de dépendances ne sont pas installés sur le système, ils sont généralement installés automatiquement avec le package.

Pour example, l’outil GUI HandBrake pour convertir les formats vidéo a besoin FFmpeg, GStreamer. Ainsi, pour HandBrake, FFmpeg et GStreamer sont les dépendances.

Si vous n’avez pas installé ces packages sur votre système, ils seront automatiquement installés lorsque vous installerez HandBrake sur Ubuntu.

Vérifier les dépendances d’un paquet dans les distributions basées sur Ubuntu et Debian

Comme cela arrive souvent sous Linux, il existe plusieurs manières d’obtenir le même résultat. Voyons différentes manières de voir les dépendances d’un package.

Vérification des dépendances avec apt show

Vous pouvez utiliser la commande apt show pour afficher les détails d’un package. Une partie de ces informations sont des dépendances et vous pouvez les voir dans la ligne commençant par Depends.

Pour example, voici ce qu’il montre pour le package ubuntu-restricted-extras.

[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

Comme vous pouvez le voir, le package ubuntu-restricted-extras dépend du package ubuntu-restricted-addons.

Voici une capture ! Le package de dépendance peut également dépendre d’un autre package et la chaîne peut continuer. Heureusement, le gestionnaire de packages APT gère cela pour vous en installant automatiquement toutes les dépendances (la plupart du temps).

Quel est le forfait recommandé?

Avez-vous remarqué la ligne commençant par Recommends dans la sortie ci-dessus ?

Les packages recommandés ne sont pas des dépendances directes du package, mais ils activent des fonctionnalités supplémentaires.

Comme vous pouvez le voir, ubuntu-restricted-extras a ttf-mscorefonts-installer comme package recommandé pour l’installation des polices Microsoft sur Ubuntu.

Les packages recommandés sont également installés par défaut et si vous souhaitez explicitement interdire l’installation du package recommandé, utilisez le drapeau -no-install-recommends comme ceci :

sudo apt install -no-install-recommends package_name

Utilisez apt-cache pour obtenir uniquement les informations sur les dépendances

L’émission apt contient beaucoup trop d’informations. Si vous souhaitez obtenir les dépendances dans un script, la commande apt-cache vous donne une sortie meilleure et propre.

apt-cache depends package_name

La sortie a l’air bien nette, n’est-ce pas ?

Vérifier les dépendances d’un fichier DEB à l’aide de dpkg

Les commandes apt et apt-cache fonctionnent toutes deux sur les packages disponibles à partir des référentiels. Mais si vous téléchargez un fichier DEB, ces commandes ne fonctionneront pas.

Dans ce cas, vous pouvez utiliser la commande dpkg avec l’option -I ou –info.

dpkg -I path_to_deb_file

Les dépendances peuvent être vues dans la ligne commençant par Depends.

Vérification des dépendances et des dépendances inversées avec apt-rdepends

Si vous souhaitez plus de détails sur les dépendances, vous pouvez utiliser l’outil apt-rdepends. Cet outil crée l’arbre de dépendances complet. Ainsi, vous obtenez la dépendance d’un package et les dépendances des dépendances également.

Ce n’est pas une commande apt régulière et vous devrez l’installer à partir du référentiel de l’univers :

sudo apt install apt-rdepends

La sortie est généralement assez grande en fonction de l’arbre de dépendance.

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)

L’outil apt-rdepends est assez polyvalent. Il peut également calculer les dépendances inverses. Ce qui signifie que vous pouvez voir quels autres packages dépendent d’un certain package.

apt-rdepends -r package_name

La sortie peut être assez importante car elle imprimera l’arbre de dépendance inverse.

[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)

J’espère que ce didacticiel rapide a été utile pour améliorer un peu vos connaissances en ligne de commande. Restez à l’écoute pour plus de ces conseils.