Si vous utilisez un système Linux Debian ou basé sur Debian (comme Unbuntu ou Linux Mint) en ligne de commande, vous avez sans doute déjà utilisé l’instruction apt-get, apt ou encore aptitude. Grâce à ces dernières, vous pouvez installer et mettre à jour des paquets sur votre distribution Linux. Mais quelle est la différence entre un apt update, apt upgrade, apt dist-upgrade ou apt full-upgrade ? Laquelle de ces options devriez-vous utiliser ?
Les mises à jour en ligne de commande
APT est une interface de gestion des paquets des systèmes Linux Debian. apt-get
est le programme de base permettant d’installer, de mettre à jour ou de supprimer des paquets. Depuis Debian 8 Jessie, un équivalent apt
existe avec une interface colorée, plus agréable pour l’utilisateur.
L’utilisation d’apt-get reste toutefois recommandée dans les scripts Shell sinon c’est apt qu’il convient maintenant d’utiliser. D’autres gestionnaires existent, notamment aptitude proposant une interface pour de gestion.
apt update
# apt update
L’instruction update
va rechercher les mises à jour disponibles pour votre système et vos programmes installés en se basant sur les sources définies dans /etc/apt/source.list
. Un fichier d’index est créé pour lister les mises à jour disponibles. Il servira de référence pour l’installation de nouvelles mises à jour.
Les actions des commandes apt-get update
, apt update
ou encore aptitude update
sont similaires.
apt upgrade
# apt upgrade
L’option upgrade
installe les mises à jour identifiée avec apt update
sans supprimer les paquets installés. S’il y a de nouvelles dépendances à installer, les paquets peuvent être installés ou non selon le type de commande utilisée apt, apt-get ou aptitude.
C’est la méthode la moins risquée puisque seuls les programmes déjà installés sont mis à jour. Cette commande est donc plus sûre mais cela ne signifie pas pour autant qu’elle est à privilégier.
apt dist-upgrade et apt full-upgrade
# apt full-upgrade
Les options dist-upgrade
ou full-upgrade
sont identiques, utiliser l’une ou l’autre revient donc au même.
Ces deux options agissent plus « intelligemment » que la fonction upgrade
. En plus de mettre à jour les paquets existants, elles vont également être en mesure de gérer les dépendances. Si de nouveaux paquets doivent être installés pour satisfaire des dépendances, ils le seront. Ceux qui ne sont plus utiles, sont supprimés et les paquets essentiels ou requis, sont installés. Les paquets les plus importants sont traités en priorité.
Cette commande est moins conservatrice et peux causer des résultats inattendus en raison des possibilités de nouvelles installations ou de suppressions. Ne pas faire l’amalgame de « dist » avec distribution, la terminologie n’a rien n’a voir. La terminologie « full-upgrade » est maintenant plus adaptée et ne porte pas à confusion.
Dois-je utiliser apt upgrade ou apt full-upgrade?
Maintenant que vous connaissez la différence entre un apt upgrade
ou un apt full-upgrade
, vous vous posez peut-être la question suivante : quelle instruction dois-je utiliser pour mettre à jour mon système Linux basé sur Debian ?
Dans un environnement hautement critique et qui doit rester stable, la commande upgrade
est plus sûre. Si vous désirez faire une opération de mise à jour courante et minorer le risque, il en est de même. Seuls les paquets actuellement installés sont traités. Les risques de dysfonctionnement suite à la suppression ou l’installation d’un nouveau paquet sont réduits.
Dans la plupart des autres cas, l’option dist-upgrade
ou full-upgrade
est à privilégier, car vous obtiendrez toutes les dernières mises à jour sur votre système et du noyau. Lorsque vous souhaitez changer de version majeure de distribution (par exemple pour passer de Debian 8 à Debian 9), c’est cette commande que vous devez utiliser.
Dans tous les cas, je vous conseille vivement de réaliser une sauvegarde avant toute mise à jour et de réaliser des essais au préalable sur un environnement de test.
En résumé
Pour conclure, je vous adresse un petit tableau qui résume les fonctions de chaque commande :
apt update | apt-get update | aptitude update | Télécharge les informations des paquets à partir des sources configurées |
apt upgrade | apt-get upgrade | aptitude safe-upgrade | Mets à jour les paquets installés sans en supprimer. Quelques différences de comportement : apt-get upgrade : N'installe pas de nouveaux paquetsapt upgrade : Installe de nouveau paquets pour satisfaire des dépendances si nécessaireaptitude safe-upgrade : Les paquets installés ne sont pas retirés sauf s'ils sont inutilisés |
apt full-upgrade | apt-get dist-upgrade | aptitude full-upgrade | Installe les versions candidates des paquets installés en installant ou en supprimant d’autres paquets si nécessaire |
Vous obtiendrez plus de détails dans le manuel, en tapant man apt
, man apt-get
ou encore man aptitude
. Quel gestionnaire préférez-vous utiliser ?
Peut-être une mauvaise compréhension de ce que vous disiez
Bonjour,
Ce n’est pas moi, qui dit ça mais un Administrateur qui s’appelle vv222 Sur Debian Facile, mais bon….
Moi personnellement, Je n’y connais rien donc Je ne peux pas argumenter
« L’option upgrade installe les mises à jour identifiée avec apt update sans supprimer les paquets installés et sans en installer de nouveaux. » Faux 😉
Cʼest le comportement de `apt-get upgrade`
apt upgrade` peut installer de nouveaux paquets (mais pas en supprimer).
Lʼéquivalent serait `apt-get upgrade –with-new-pkgs`
Bonjour Jean Pierre,
Avec-vous une source ? Car ce que vous décrivez est le comportement de dist-upgrade.
apt upgrade
met à jour les paquets existant sans en installer de nouveau. C’est vérifiable sur la doc de la commande :Et Wikipedia https://fr.wikipedia.org/wiki/Advanced_Packaging_Tool
Bonjour David,
C’est moi qui suis derrière la remarque qu’a partagé Jean-Pierre.
Il s’agit d’un changement de comportement qui de mémoire a été documenté au moment de sa mise en place, puis a été rapidement oublié. Mais les pages de manuel sont bien à jour, et on constate la différence en allant lire la section « upgrade » de ces deux pages :
– man apt-get
– man apt
Les correspondances entre apt-get, apt et aptitude sont :
apt-get upgrade / apt upgrade –no-new-pkgs / aptitude safe-upgrade –no-new-installs
apt-get upgrade –with-new-pkgs / apt upgrade / aptitude safe-upgrade
apt-get dist-upgrade / apt full-upgrade / aptitude full-upgrade
Ok merci d’avoir partagé cette info, je regarderai plus en détails semaine pro sur ma machine
Bonjour vv222,
j’ai fais des vérifications et je constate qu’il y a une différence de fonctionnement entre
apt
etapt-get
:man apt
upgrade (apt-get(8))
La commande upgrade permet d’installer les mises à jour disponibles de tous les paquets présents sur le système en utilisant les sources énumérées dans sources.list(5). De nouveaux paquets
seront installés si cela est nécessaire pour satisfaire des dépendances, mais les paquets installés ne seront jamais supprimés. Si la mise à jour d’un paquet nécessite la suppression d’un
paquet installé, la mise à jour n’est pas réalisée.
man apt-get
upgrade
La commande upgrade permet d’installer les versions les plus récentes de tous les paquets présents sur le système en utilisant les sources énumérées dans /etc/apt/sources.list. Les paquets
installés dont il existe de nouvelles versions sont récupérés et mis à niveau. En aucun cas des paquets déjà installés ne sont supprimés ; de même, des paquets qui ne sont pas déjà installés
ne sont ni récupérés ni installés. Les paquets dont de nouvelles versions ne peuvent pas être installées sans changer le statut d’installation d’un autre paquet sont laissés dans leur version
courante. On doit d’abord exécuter la commande update pour que apt-get connaisse l’existence de nouvelles versions des paquets.
Donc j’en conclus que :
apt upgrade
peut installer de nouveau paquets pour satisfaire des dépendances etapt-get upgrade
n’installe pas de nouveaux paquets. Il y a une erreur pour la commande apt upgrade dans l’article. J’ai récupéré ces infos sur une Debian Stretch.