0%
Debian et Ubuntu : Guide d'Administration Complet

Debian et Ubuntu : Guide d'Administration Complet

Apprenez à administrer Debian et Ubuntu : APT, dépôts, PPA, dpkg, mises à niveau de version et dépannage. Guide complet avec exemples concrets.

I

InSkillCoach

· min

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èreDebianUbuntu
ÉditeurProjet communautaireCanonical (entreprise)
Cycle de sortieEnviron tous les 2 ans, « quand c’est prêt »Tous les 6 mois, dates fixes
Versions LTSChaque version stable (~5 ans avec LTS)Une LTS tous les 2 ans (5 ans de support)
StabilitéTrès conservatrice, paquets éprouvésPaquets plus récents
Logiciels propriétairesSéparés (non-free)Intégrés plus facilement
SnapAbsent par défautInstallé et utilisé par défaut
Public cibleServeurs, puristes du libreDé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èreAPT (.deb)Snap
DépendancesPartagées entre paquetsEmbarquées dans chaque snap
Taille sur disqueFaibleÉlevée (bibliothèques dupliquées)
Fraîcheur des versionsFigée pour la durée de la versionToujours la dernière version
Mises à jourContrôlées par l’administrateurAutomatiques (difficiles à bloquer)
Démarrage des applicationsRapidePlus lent (montage squashfs)
Isolation de sécuritéAucune par défautConfinement sandbox
DisponibilitéToutes les distributions .debPrincipalement 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 update avant toute installation ou mise à jour.
  • Lisez la liste des changements proposés par full-upgrade avant de valider.
  • Activez unattended-upgrades pour 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 autoremove et apt 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.

InSkillCoach

À 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+
1.7k
144

Commentaires

Les commentaires sont alimentés par GitHub Discussions

Connectez-vous avec GitHub pour participer à la discussion

Lien copié !