Cours Linux / Installer et mettre à jour les paquets avec APT et DNF

Pour installer ou mettre à jour un paquet Linux, utilisez le gestionnaire prévu par votre distribution : APT sur Debian et Ubuntu, DNF sur Rocky Linux. Distinguez l’actualisation des informations des dépôts de la modification des paquets installés. Avant d’accepter une transaction, examinez son origine, ses dépendances, ses suppressions éventuelles et son effet sur les services.

Les exemples visent une machine virtuelle Ubuntu 26.04 LTS ou Rocky Linux 9 avec Bash, les dépôts habituels et un compte autorisé à administrer les paquets. Exécutez uniquement la branche correspondant à votre distribution. Préparez l’accès à la console et un moyen de restauration dans le cours sur l’environnement de pratique en machine virtuelle ; un conteneur ou une image minimale peut avoir des outils et des restrictions différents.

Comprendre les paquets, les dépôts et les dépendances

Un paquet regroupe des fichiers de programme et des métadonnées, notamment une version et des dépendances. Un dépôt est une source de paquets configurée pour le système. Une dépendance est un autre composant nécessaire au fonctionnement du paquet ; le gestionnaire calcule les éléments à installer ou à changer ensemble.

APT, Advanced Package Tool, est l’ensemble d’outils utilisé ici pour les paquets Debian .deb ; apt en fournit une interface interactive. La documentation Debian des outils de gestion des paquets situe APT au-dessus de dpkg, qui gère les paquets sur la machine.

DNF, Dandified YUM, gère notamment la recherche, la résolution des dépendances et les transactions des paquets RPM, pour RPM Package Manager. Nous utilisons la famille DNF 4 de Rocky Linux 9 ; le projet amont DNF 4 est distinct de DNF 5. Ne transposez pas automatiquement toutes les options à une autre implémentation.

Le même nom de programme ne garantit ni la même version ni la même disponibilité entre distributions. Les dépôts activés, l’architecture et la version du système déterminent les candidats. La présence d’un programme installé manuellement ne prouve pas non plus qu’un paquet de ce nom est installé.

Identifier le système et préparer la transaction

cat /etc/os-release
command -v apt
command -v dnf

Relevez ID, VERSION_ID et, lorsqu’il existe, ID_LIKE dans /etc/os-release. command -v indique si le shell trouve une commande ; il ne certifie pas à lui seul quel gestionnaire doit administrer le système. L’absence d’apt ou de dnf peut être normale dans une image minimale : n’installez pas l’autre gestionnaire pour contourner cette situation.

  1. Vérifiez que vous travaillez dans la machine de pratique, que le réseau vers les dépôts fonctionne et que le disque dispose d’espace pour les téléchargements et l’installation.
  2. Préparez une sauvegarde des données et configurations importantes. Un instantané de machine virtuelle peut faciliter l’exercice, selon le stockage et la cohérence des applications.
  3. Conservez une console de récupération. Une mise à jour peut affecter un service ou une connexion distante ; prévoyez le moment de l’intervention.
  4. Lisez la transaction proposée avant de confirmer. Dans ce cours, nous n’ajoutons pas -y pour accepter automatiquement les changements.

Les étapes suivantes prennent tree, qui affiche une arborescence de fichiers, comme exemple de paquet. Commencez par relever s’il est déjà installé : si c’est le cas, ne le supprimez pas à la fin uniquement pour suivre l’exercice. La disponibilité doit être confirmée dans les dépôts de votre propre machine.

Comparer les opérations APT et DNF

Objectif Debian et Ubuntu : APT Rocky Linux 9 : DNF
Chercher apt search tree dnf search tree
Lire les informations apt show tree dnf info tree
Vérifier l’installation locale dpkg-query -W -f='${Status}\n' tree rpm -q tree
Consulter les mises à jour sudo apt update, puis apt list --upgradable sudo dnf check-update
Installer après examen sudo apt install tree sudo dnf install tree
Mettre à jour les paquets sudo apt upgrade sudo dnf upgrade
Supprimer après examen sudo apt remove tree sudo dnf remove tree

La recherche et l’information décrivent les candidats ; elles ne lancent pas l’installation. Les commandes install, upgrade et remove modifient les paquets après résolution et, habituellement, confirmation. Une consultation DNF peut néanmoins actualiser des métadonnées et son cache : « ne pas installer de paquet » ne signifie pas « ne rien écrire sur le disque ».

Installer un paquet avec APT sur Ubuntu

Dans la branche Ubuntu, relevez d’abord l’état local de tree et actualisez les informations des dépôts :

dpkg-query -W -f='${Status}\n' tree
sudo apt update

Un état install ok installed indique un paquet installé dans l’état normal. Un message signalant l’absence du paquet, des fichiers de configuration seuls ou un autre état ne signifie pas la même chose. Si la base indique une installation incomplète, traitez ce problème avant de poursuivre. Les apostrophes empêchent Bash d’interpréter ${Status} ; le manuel de dpkg-query décrit les champs et états.

apt update récupère les informations des sources configurées. Il ne met pas, à lui seul, les programmes installés à leur nouvelle version. Lisez aussi les avertissements : si un dépôt n’a pas été récupéré, une partie des informations peut être ancienne ou manquer. Corrigez le problème de dépôt ou de réseau avant de conclure qu’aucune mise à jour n’existe.

Recherchez ensuite le paquet, lisez sa description et simulez l’installation :

apt search tree
apt show tree
sudo apt-get -s install tree

La recherche peut renvoyer plusieurs noms. Vérifiez le nom exact tree, sa fonction, son origine, la version candidate et les dépendances proposées. La simulation apt-get -s calcule les opérations sans les effectuer ; elle peut afficher Inst pour un dépaquetage, Conf pour une configuration et Remv pour un retrait.

La simulation n’est pas une réservation de ce plan : elle désactive le verrouillage et le système ou les dépôts peuvent changer avant l’installation réelle. Ici, sudo évite les restrictions de lecture de configuration d’une simulation sans privilèges. Ces limites sont précisées dans le manuel d’apt-get, option --simulate.

Si le paquet et la transaction correspondent au besoin, lancez l’installation réelle :

sudo apt install tree

Lisez à nouveau le plan réel, notamment les éléments ajoutés ou retirés et l’espace nécessaire, avant de répondre à la demande de confirmation. Si le résultat est inattendu, refusez la transaction. Attendez la fin et lisez les erreurs éventuelles avant de vérifier :

dpkg-query -W -f='${Status}\n' tree
tree --version

La base doit maintenant indiquer un état installé normal et tree doit afficher sa version. Le numéro dépend du dépôt : aucun numéro précis n’est requis ici. Si la commande reste introuvable, relisez le résultat de l’installation et vérifiez le nom du programme ; la présence d’une description dans apt show ne prouvait pas son installation. La documentation Ubuntu de gestion des paquets présente le cycle de mise à jour de l’index, d’installation et de retrait.

Installer un paquet avec DNF sur Rocky Linux

Dans la branche Rocky Linux 9, relevez l’état local et recherchez le candidat :

rpm -q tree
dnf search tree
dnf info tree

rpm -q consulte la base locale : une installation connue est identifiée par le nom et la version du paquet ; sinon, le message indique qu’il n’est pas installé. La recherche DNF peut aussi renvoyer des paquets différents. Comparez le nom, la description, l’architecture et le dépôt avant de choisir. Le manuel RPM des requêtes décrit -q ; il ne fixe pas la version de RPM installée sur votre Rocky Linux.

Demandez un plan qui répondra non aux confirmations :

sudo dnf --assumeno install tree

--assumeno empêche l’acceptation de la transaction d’installation ; DNF peut cependant télécharger ou mettre à jour des métadonnées. Lisez le plan et les messages, pas seulement un état final non nul lié à l’abandon. Vérifiez les installations, remplacements et suppressions proposés, ainsi que le volume téléchargé et l’espace nécessaire.

Après cet examen, si l’opération correspond à votre besoin, lancez l’installation réelle et confirmez son propre plan :

sudo dnf install tree

Attendez la fin sans ignorer les erreurs, puis contrôlez la base locale et l’exécutable :

rpm -q tree
tree --version

Vous devez retrouver le paquet installé et la version du programme ; ces numéros dépendent des dépôts. Si aucun candidat n’est disponible, vérifiez la distribution, le nom et les dépôts prévus pour cette version avant d’ajouter une source externe. Le manuel DNF 4 définit notamment --assumeno, install, check-update et history. Le guide DNF pour Rocky Linux détaille les autres consultations de ce gestionnaire.

Consulter et appliquer les mises à jour

Une mise à jour de l’ensemble du système dépasse l’installation de tree. Sauvegardez les éléments importants et préparez l’intervention avant cette étape. Exécutez seulement les commandes de votre distribution, séparément, en lisant les résultats avant de continuer.

Debian et Ubuntu : actualiser puis mettre à jour

sudo apt update
apt list --upgradable

La première commande actualise les informations ; la seconde liste les candidats connus pour les paquets installés. Après avoir traité les avertissements et examiné les candidats, vous pouvez demander la mise à jour :

sudo apt upgrade

apt upgrade peut installer de nouvelles dépendances, mais ne retire pas de paquet déjà installé. Si une mise à jour exige un retrait, elle n’est pas réalisée par cette commande. full-upgrade peut autoriser des retraits : ne l’utilisez pas comme correction automatique d’un paquet conservé. Le manuel d’apt pour Ubuntu 26.04 précise cette différence.

apt est destiné à l’usage interactif. Pour écrire un script, consultez les interfaces prévues à cet effet, comme apt-get, et leurs options exactes plutôt que de supposer une sortie apt stable. Ne confondez pas non plus apt upgrade avec le passage à une nouvelle version d’Ubuntu.

Rocky Linux : interpréter check-update avant upgrade

sudo dnf check-update
etat_verification=$?
printf 'Etat de check-update : %s\n' "$etat_verification"

Dans une session Bash interactive ordinaire, capturez $? immédiatement comme ci-dessus : une autre commande écraserait cet état. Pour check-update, 0 signifie qu’aucune mise à jour n’a été trouvée, 100 que des mises à jour sont disponibles et 1 qu’une erreur est survenue. Les diagnostics restent nécessaires si une autre défaillance empêche la consultation.

Ne reliez pas automatiquement check-update et upgrade par && : l’état 100 empêche la seconde commande de s’exécuter, alors qu’il indique justement des candidats. Dans un script avec arrêt sur erreur, il faut également traiter ce résultat explicitement. Après examen, demandez séparément la transaction :

sudo dnf upgrade

La liste de candidats ne garantit pas que chaque mise à jour sera finalement installable : la résolution des dépendances et la configuration interviennent encore. Lisez les changements et les éventuelles exclusions avant de confirmer. Cette opération met à jour les paquets dans le cadre des dépôts configurés.

Un passage de Rocky Linux 9 à une autre version majeure est une migration distincte. Le projet ne prend pas en charge la mise à niveau sur place entre versions majeures ; son guide des changements de version pris en charge décrit une nouvelle installation suivie de la migration des éléments nécessaires. Ne changez pas simplement les numéros de dépôts pour transformer cet exercice en migration.

Vérifier le résultat et prévoir les redémarrages

Une commande terminée ne suffit pas à prouver que toutes les fonctions attendues sont disponibles. Relisez ses erreurs et avertissements, vérifiez la version des programmes concernés et, pour un service, son état et ses journaux. Une mise à jour peut modifier des fichiers de configuration ou demander un choix ; sauvegardez les adaptations locales avant de les remplacer.

uname -r

uname -r indique le noyau actuellement exécuté. Installer un nouveau noyau ne remplace pas immédiatement celui déjà en mémoire : prévoyez un redémarrage selon les consignes de la distribution et l’impact sur les services. Les applications utilisant d’anciennes bibliothèques peuvent aussi nécessiter un redémarrage approprié ; ne déduisez pas de la seule installation que tous les processus utilisent les nouveaux fichiers.

Si une transaction échoue à cause d’un verrou, recherchez d’abord si un autre gestionnaire ou une tâche de mise à jour travaille encore. Ne supprimez pas un verrou au hasard et ne lancez pas deux opérations de paquet simultanées. Pour un dépôt inaccessible, vérifiez les messages de réseau, de signature et de version ; désactiver les vérifications ne corrige pas la cause.

Retirer le paquet de pratique sans confondre retrait et restauration

Cette étape est facultative. Procédez seulement si tree n’était pas déjà installé avant l’exercice et si vous ne souhaitez pas le conserver. Prévisualisez d’abord le retrait dans la branche adaptée :

sudo apt-get -s remove tree

Ou, sur Rocky Linux :

sudo dnf --assumeno remove tree

Examinez toute la liste : retirer un paquet peut concerner des composants qui en dépendent et, avec DNF selon sa configuration, des dépendances devenues inutiles. Si un programme nécessaire apparaît, refusez et étudiez la relation avant d’agir. Après avoir jugé le retrait approprié, exécutez uniquement la commande réelle de votre distribution :

sudo apt remove tree

Ou, sur Rocky Linux :

sudo dnf remove tree

Confirmez le plan réel après l’avoir relu. Reprenez ensuite la requête locale dpkg-query ou rpm -q utilisée au départ : le paquet ne doit plus être dans un état installé normal. Avec APT, des fichiers de configuration peuvent subsister ; un exécutable ajouté manuellement ailleurs peut aussi rester disponible, d’où l’intérêt de consulter la base.

APT distingue remove, qui laisse généralement les fichiers de configuration gérés comme tels, et purge, qui les retire aussi. Cela ne signifie pas que tous les fichiers personnels ou toutes les données créées par un programme sont effacés. autoremove propose des dépendances installées automatiquement et devenues inutiles : sa liste mérite un examen, même après un simple exercice.

Le retrait ne reconstitue pas exactement l’état initial : caches, dépendances, configuration et effets de scripts peuvent différer. De même, l’historique des transactions DNF aide à comprendre les changements sans constituer une sauvegarde des données. Un retour de version peut dépendre de la disponibilité des anciens paquets et ne restaure pas à lui seul les données ou la configuration. Pour revenir à un état cohérent préparé avant l’exercice, utilisez la procédure de restauration que vous avez effectivement prévue.