Debian et Ubuntu : Guide d’Administration Complet
Debian et Ubuntu forment la famille de distributions Linux la plus répandue au monde, aussi bien sur les serveurs que sur les postes de travail. Si vous débutez dans l’administration système, il y a de fortes chances que votre première machine Linux tourne sous l’une de ces deux distributions. Dans ce guide, nous allons couvrir tout ce dont vous avez besoin pour administrer un système Debian ou Ubuntu au quotidien : la gestion des paquets avec APT, la configuration des dépôts, les mises à niveau de version et le dépannage des problèmes les plus courants.
1. Debian et Ubuntu : Quelles Différences ?
Ubuntu est construit à partir de Debian : environ 90 % des paquets Ubuntu proviennent directement des dépôts Debian. Les deux distributions partagent donc le même format de paquets (.deb), le même gestionnaire APT et une grande partie de leur documentation. Elles diffèrent cependant sur plusieurs points importants.
| Critère | Debian | Ubuntu |
|---|---|---|
| Éditeur | Projet communautaire | Canonical (entreprise) |
| Cycle de sortie | Environ tous les 2 ans, « quand c’est prêt » | Tous les 6 mois, dates fixes |
| Versions LTS | Chaque version stable (~5 ans avec LTS) | Une LTS tous les 2 ans (5 ans de support) |
| Stabilité | Très conservatrice, paquets éprouvés | Paquets plus récents |
| Logiciels propriétaires | Séparés (non-free) | Intégrés plus facilement |
| Snap | Absent par défaut | Installé et utilisé par défaut |
| Public cible | Serveurs, puristes du libre | Débutants, postes de travail, cloud |
En résumé : Debian privilégie la stabilité et la liberté logicielle, Ubuntu privilégie la facilité d’utilisation et la fraîcheur des paquets. Pour un serveur de production, les deux sont d’excellents choix.
2. Comprendre le Cycle des Versions et les LTS
Les versions Ubuntu
Ubuntu publie une version tous les six mois, numérotée par année et mois de sortie : 24.04 signifie avril 2024. Tous les deux ans, la version d’avril est une LTS (Long Term Support) supportée pendant cinq ans. Les versions intermédiaires ne sont supportées que neuf mois.
# Afficher la version installée
lsb_release -a
# Alternative sans lsb_release
cat /etc/os-release
Règle simple : sur un serveur, installez toujours une LTS (20.04, 22.04, 24.04…). Les versions intermédiaires sont réservées aux postes de travail des utilisateurs qui veulent les dernières nouveautés.
Les versions Debian
Debian maintient trois branches en parallèle :
- stable : la version de production, mise à jour uniquement pour la sécurité ;
- testing : la future version stable, en cours de préparation ;
- unstable (sid) : la branche de développement, où arrivent les nouveaux paquets.
Chaque version stable porte un nom de code tiré des personnages de Toy Story (Bookworm, Trixie…). Une version stable est supportée environ trois ans par l’équipe de sécurité, puis deux ans supplémentaires par le projet LTS.
3. APT en Profondeur
APT (Advanced Package Tool) est l’outil central de la gestion des paquets. Voici les commandes que vous utiliserez tous les jours.
Mettre à jour la liste des paquets
# Télécharge les index des dépôts (ne modifie rien sur le système)
sudo apt update
Cette commande ne met rien à jour : elle rafraîchit simplement la liste des paquets disponibles. Il faut toujours la lancer avant une installation ou une mise à jour.
Mettre à jour les paquets installés
# Met à jour les paquets sans en supprimer ni en installer de nouveaux
sudo apt upgrade
# Met à jour en autorisant l'installation ou la suppression de paquets
# (nécessaire pour les mises à jour du noyau, par exemple)
sudo apt full-upgrade
La différence est importante : upgrade refuse toute mise à jour qui nécessiterait de supprimer un paquet, tandis que full-upgrade (anciennement dist-upgrade) accepte de résoudre les changements de dépendances. Sur un serveur, prenez l’habitude de lire attentivement ce que full-upgrade propose avant de valider.
Installer et supprimer des paquets
# Installer un paquet
sudo apt install nginx
# Installer plusieurs paquets d'un coup
sudo apt install curl git htop
# Supprimer un paquet en gardant ses fichiers de configuration
sudo apt remove nginx
# Supprimer un paquet ET ses fichiers de configuration
sudo apt purge nginx
# Supprimer les dépendances devenues inutiles
sudo apt autoremove
Lancez apt autoremove régulièrement : quand vous supprimez un paquet, ses dépendances restent installées et s’accumulent avec le temps.
Rechercher et inspecter des paquets
# Rechercher un paquet par mot-clé
apt search "serveur web"
# Afficher les détails d'un paquet (version, taille, dépendances, description)
apt show nginx
# Lister les versions disponibles et leur provenance
apt-cache policy nginx
# Lister les dépendances d'un paquet
apt-cache depends nginx
# Lister les paquets qui dépendent d'un paquet
apt-cache rdepends nginx
Le pinning : figer ou prioriser des versions
Le pinning permet de contrôler quelle version d’un paquet APT doit préférer, par exemple pour empêcher une mise à jour ou pour tirer un paquet d’un dépôt spécifique.
# Empêcher toute mise à jour d'un paquet (méthode simple)
sudo apt-mark hold nginx
# Réautoriser les mises à jour
sudo apt-mark unhold nginx
# Lister les paquets gelés
apt-mark showhold
Pour un contrôle plus fin, créez un fichier dans /etc/apt/preferences.d/ :
# /etc/apt/preferences.d/nginx-pin
# Priorité > 1000 : force cette version même s'il faut rétrograder
Package: nginx
Pin: version 1.24.*
Pin-Priority: 1001
4. sources.list et les Dépôts
Où sont définis les dépôts
Les dépôts APT sont déclarés dans /etc/apt/sources.list et dans les fichiers du répertoire /etc/apt/sources.list.d/. Sur les versions récentes (Debian 12+, Ubuntu 24.04+), le format « deb822 » dans des fichiers .sources remplace progressivement l’ancien format.
# Ancien format (une ligne par dépôt)
# type URL distribution composants
deb http://deb.debian.org/debian bookworm main contrib non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main
Les composants ont une signification précise :
- main : logiciels libres supportés officiellement ;
- contrib (Debian) : logiciels libres dépendant de logiciels non libres ;
- non-free / non-free-firmware (Debian) : logiciels et firmwares propriétaires ;
- universe / multiverse (Ubuntu) : paquets communautaires et non libres.
Modifier les dépôts proprement
# Ne modifiez jamais sources.list à la main sans sauvegarde
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# Ajoutez plutôt vos dépôts tiers dans des fichiers séparés
sudo nano /etc/apt/sources.list.d/mon-depot.list
# Après toute modification, rafraîchissez les index
sudo apt update
Les dépôts tiers modernes exigent une clé de signature stockée dans /etc/apt/keyrings/ et référencée avec l’option signed-by :
# Exemple : ajout du dépôt officiel Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu noble stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
5. Les PPA sous Ubuntu
Les PPA (Personal Package Archives) sont des dépôts personnels hébergés sur Launchpad, propres à l’écosystème Ubuntu. Ils permettent d’obtenir des versions plus récentes d’un logiciel que celles des dépôts officiels.
# Ajouter un PPA (ajoute le dépôt et sa clé automatiquement)
sudo add-apt-repository ppa:ondrej/php
sudo apt update
# Supprimer un PPA
sudo add-apt-repository --remove ppa:ondrej/php
# Supprimer un PPA et rétrograder les paquets vers les versions officielles
sudo apt install ppa-purge
sudo ppa-purge ppa:ondrej/php
Attention : un PPA est maintenu par un individu ou une équipe tierce. N’ajoutez que des PPA de sources reconnues, et évitez-les sur les serveurs de production quand une alternative officielle existe.
6. dpkg : le Niveau Bas
APT s’appuie sur dpkg, l’outil de bas niveau qui installe réellement les fichiers .deb. Vous en aurez besoin dans certaines situations précises.
# Installer un fichier .deb téléchargé manuellement
sudo dpkg -i paquet.deb
# Si dpkg signale des dépendances manquantes, laissez APT les résoudre
sudo apt install -f
# Méthode moderne recommandée : apt gère le .deb ET ses dépendances
sudo apt install ./paquet.deb
# Lister tous les paquets installés
dpkg -l
# Vérifier si un paquet est installé
dpkg -l | grep nginx
# Lister les fichiers installés par un paquet
dpkg -L nginx
# Trouver à quel paquet appartient un fichier
dpkg -S /etc/nginx/nginx.conf
7. Mise à Niveau de Version
Ubuntu : do-release-upgrade
Ubuntu fournit un outil dédié pour passer d’une version à la suivante :
# 1. Mettre le système entièrement à jour avant tout
sudo apt update && sudo apt full-upgrade
sudo reboot
# 2. Lancer la mise à niveau
sudo do-release-upgrade
# Vérifier le comportement configuré (lts ou normal)
cat /etc/update-manager/release-upgrades
Avec Prompt=lts dans ce fichier, l’outil ne propose que le passage de LTS en LTS (22.04 vers 24.04, par exemple), ce qui est le réglage recommandé sur serveur. Notez que la mise à niveau d’une LTS vers la suivante n’est proposée qu’après la sortie de la première version corrective (24.04.1, par exemple).
Debian : modification des sources
Sous Debian, la mise à niveau se fait en changeant le nom de code dans les sources puis en lançant une mise à jour complète :
# 1. Sauvegarder et remplacer le nom de code (ex. bookworm -> trixie)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
# 2. Mise à niveau en deux temps, comme le recommandent les notes de version
sudo apt update
sudo apt upgrade --without-new-pkgs
sudo apt full-upgrade
sudo reboot
Dans tous les cas : faites une sauvegarde complète avant la mise à niveau, lisez les notes de version, et ne sautez jamais une version (Debian 11 vers 13 directement n’est pas supporté).
8. Mises à Jour Automatiques avec unattended-upgrades
Sur un serveur, appliquer automatiquement les correctifs de sécurité est une bonne pratique quasi indispensable.
# Installation et activation
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
La configuration se trouve dans /etc/apt/apt.conf.d/50unattended-upgrades :
// Extrait de configuration typique
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
// Redémarrage automatique si nécessaire (ex. mise à jour du noyau)
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
# Tester la configuration sans rien appliquer
sudo unattended-upgrade --dry-run --debug
# Consulter les journaux
less /var/log/unattended-upgrades/unattended-upgrades.log
9. Snap vs APT
Ubuntu pousse le format Snap, des paquets auto-contenus qui embarquent leurs dépendances. Le sujet divise, et il est utile de comprendre les compromis.
| Critère | APT (.deb) | Snap |
|---|---|---|
| Dépendances | Partagées entre paquets | Embarquées dans chaque snap |
| Taille sur disque | Faible | Élevée (bibliothèques dupliquées) |
| Fraîcheur des versions | Figée pour la durée de la version | Toujours la dernière version |
| Mises à jour | Contrôlées par l’administrateur | Automatiques (difficiles à bloquer) |
| Démarrage des applications | Rapide | Plus lent (montage squashfs) |
| Isolation de sécurité | Aucune par défaut | Confinement sandbox |
| Disponibilité | Toutes les distributions .deb | Principalement Ubuntu |
# Commandes snap de base
snap list # snaps installés
sudo snap install code --classic
sudo snap refresh # mettre à jour
sudo snap remove code
En pratique : sur un serveur, privilégiez APT pour tout ce qui est disponible en .deb. Les snaps restent pertinents pour des applications de bureau récentes ou des outils que l’éditeur ne distribue qu’ainsi.
10. Dépannage Courant
Verrou dpkg : « Could not get lock »
Ce message apparaît quand un autre processus utilise déjà APT (souvent une mise à jour automatique en arrière-plan) :
# Identifier le processus qui tient le verrou
sudo lsof /var/lib/dpkg/lock-frontend
# Attendre qu'il se termine, ou vérifier les processus apt en cours
ps aux | grep -E "apt|dpkg"
Ne supprimez le fichier de verrou manuellement qu’en dernier recours, après avoir vérifié qu’aucun processus apt ou dpkg ne tourne : supprimer le verrou pendant une installation en cours peut corrompre la base de données des paquets.
# En dernier recours seulement, si aucun processus n'est actif
sudo rm /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock
sudo dpkg --configure -a
Dépendances cassées
# Tenter la réparation automatique
sudo apt install -f
# Terminer la configuration des paquets interrompus
sudo dpkg --configure -a
# Nettoyer le cache et retélécharger les index
sudo apt clean
sudo apt update
# Réinstaller un paquet endommagé
sudo apt install --reinstall nom-du-paquet
Espace disque saturé par le cache APT
# Voir la taille du cache
du -sh /var/cache/apt/archives
# Supprimer les .deb des versions obsolètes uniquement
sudo apt autoclean
# Vider entièrement le cache
sudo apt clean
Bonnes Pratiques
- Sur serveur, installez uniquement des versions LTS (Ubuntu) ou stable (Debian).
- Lancez
sudo apt updateavant toute installation ou mise à jour. - Lisez la liste des changements proposés par
full-upgradeavant de valider. - Activez
unattended-upgradespour les correctifs de sécurité. - Ajoutez les dépôts tiers dans
/etc/apt/sources.list.d/avec une clésigned-by, jamais dans le fichier principal. - Limitez les PPA au strict nécessaire et évitez-les en production.
- Faites une sauvegarde complète avant chaque mise à niveau de version.
- Nettoyez régulièrement avec
apt autoremoveetapt autoclean.
Conclusion
Debian et Ubuntu offrent l’un des écosystèmes de gestion de paquets les plus matures du monde Linux. En maîtrisant APT, la structure des dépôts, les mécanismes de mise à niveau et les quelques réflexes de dépannage présentés ici, vous disposez de tout le nécessaire pour administrer sereinement ces systèmes au quotidien. La suite logique de votre apprentissage : la gestion des services avec systemd, la configuration du pare-feu avec ufw, et l’automatisation de vos déploiements. Pratiquez sur une machine virtuelle, cassez des choses, réparez-les : c’est ainsi que l’on progresse.
À propos de InSkillCoach
Expert en formation et technologies
Coach spécialisé dans les technologies avancées et l'IA, porté par GNeurone Inc.
Certifications:
- AWS Certified Solutions Architect – Professional
- Certifications Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
Commentaires
Les commentaires sont alimentés par GitHub Discussions
Connectez-vous avec GitHub pour participer à la discussion