1. Introduction
Sous Debian 13 Trixie et Ubuntu, APT (Advanced Package Tool) permet de gérer l’installation, la mise à jour et la suppression des logiciels. Cet outil constitue le cœur de l’administration système sur les distributions basées sur Debian.
Dans un contexte BTS CIEL ou SIO, tu vas utiliser APT pratiquement tous les jours :
- pour installer des services réseau ;
- pour maintenir des serveurs ;
- pour appliquer des correctifs de sécurité ;
- pour automatiser des déploiements ;
- pour ajouter des dépôts logiciels.
Cette fiche t’explique :
- le fonctionnement d’APT ;
- la gestion des dépôts ;
- les clés GPG ;
- les bonnes pratiques de sécurité ;
- les méthodes de dépannage ;
- les erreurs fréquentes rencontrées en administration Linux.
2. Sommaire
- Introduction
- Sommaire
- Comprendre le fonctionnement d’APT
- Installer APT et préparer le système
- Architecture des dépôts Debian et Ubuntu
- Gestion des paquets
- Gestion des dépôts logiciels
- Gestion des clés GPG
- Mise à jour et maintenance du système
- Fichiers importants
- Bloc de configuration complet Debian 13
- Exemples concrets
- Commandes utiles et dépannage
- Logs et analyse des erreurs
- Sécurité et bonnes pratiques
- Erreurs fréquentes
- Pour aller plus loin
- Liens utiles et ressources pédagogiques
- Propositions de TP
3. Comprendre le fonctionnement d’APT
APT signifie :
Advanced Package Tool
APT agit comme une couche de gestion des paquets .deb.
Le système repose sur :
- les dépôts logiciels ;
- les index de paquets ;
- les dépendances ;
- les signatures GPG ;
- l’outil
dpkg.
3.1 Différence entre apt et dpkg
| Outil | Fonction |
|---|---|
| dpkg | Installe un paquet .deb local |
| apt | Gère les dépôts et les dépendances |
| apt-cache | Recherche des informations |
| apt-mark | Gère les paquets automatiques |
| aptitude | Interface avancée optionnelle |
3.2 Fonctionnement global
Dépôts → Téléchargement index → Résolution dépendances → Téléchargement paquets → Installation
3.3 Cycle classique d’administration
sudo apt update
sudo apt upgrade
sudo apt autoremove
Explications
| Commande | Fonction |
|---|---|
| apt update | Synchronise les index |
| apt upgrade | Met à jour les paquets |
| apt autoremove | Supprime les dépendances inutiles |
4. Installer APT et préparer le système
APT est installé par défaut sous Debian et Ubuntu.
4.1 Vérifier qu’APT fonctionne
apt --version
4.2 Vérifier la connectivité réseau
ping deb.debian.org
4.3 Vérifier la résolution DNS
resolvectl status
Sous certains serveurs minimalistes :
cat /etc/resolv.conf
5. Architecture des dépôts Debian et Ubuntu
5.1 Dépôts Debian 13
Debian 13 utilise :
maincontribnon-free-firmwarenon-free
Exemple officiel Debian 13
Fichier :
/etc/apt/sources.list
Configuration :
deb https://deb.debian.org/debian trixie main contrib non-free-firmware non-free
deb https://security.debian.org/debian-security trixie-security main contrib non-free-firmware non-free
deb https://deb.debian.org/debian trixie-updates main contrib non-free-firmware non-free
Explications
| Élément | Rôle |
|---|---|
| deb | Dépôt binaire |
| https:// | Dépôt sécurisé |
| trixie | Version Debian 13 |
| main | Logiciels libres |
| contrib | Dépendances non libres |
| non-free | Logiciels propriétaires |
| non-free-firmware | Firmwares propriétaires |
5.2 Dépôts Ubuntu
| Dépôt | Description |
|---|---|
| main | Support Canonical |
| universe | Logiciels communautaires |
| restricted | Pilotes propriétaires |
| multiverse | Logiciels non libres |
5.3 Arborescence des dépôts
/etc/apt/
├── apt.conf.d/
├── keyrings/
├── preferences.d/
├── sources.list
└── sources.list.d/
6. Gestion des paquets
6.1 Mettre à jour les index
sudo apt update
Cette commande :
- télécharge les listes de paquets ;
- vérifie les signatures GPG ;
- synchronise les dépôts.
6.2 Mettre à jour les paquets
sudo apt upgrade
Mise à jour complète
sudo apt full-upgrade
Différences
| Commande | Fonction |
|---|---|
| upgrade | Ne supprime pas de paquets |
| full-upgrade | Peut supprimer/remplacer |
6.3 Installer un paquet
sudo apt install nginx
Installer plusieurs paquets
sudo apt install nginx mariadb-server php-fpm
6.4 Supprimer un paquet
sudo apt remove nginx
Les fichiers de configuration restent présents.
6.5 Supprimer totalement
sudo apt purge nginx
APT supprime :
- les paquets ;
- les configurations associées.
6.6 Nettoyer les dépendances
sudo apt autoremove
6.7 Nettoyer le cache
sudo apt clean
Répertoire concerné
/var/cache/apt/archives/
6.8 Rechercher un paquet
apt search wireshark
6.9 Afficher les informations d’un paquet
apt show nginx
6.10 Afficher la politique des versions
apt policy nginx
Très utile pour :
- comprendre les priorités ;
- vérifier le dépôt utilisé ;
- analyser un problème de version.
7. Gestion des dépôts logiciels
7.1 Ajouter un dépôt moderne
Sous Debian 13, il faut utiliser :
/etc/apt/sources.list.d//etc/apt/keyrings/signed-by=
Exemple Docker Debian 13
Création du dépôt :
sudo nano /etc/apt/sources.list.d/docker.list
Contenu :
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian trixie stable
7.2 Pourquoi éviter le fichier principal
Évite de modifier directement :
/etc/apt/sources.list
Utiliser un fichier dédié :
- simplifie la maintenance ;
- facilite les audits ;
- réduit les erreurs.
8. Gestion des clés GPG
8.1 Répertoire recommandé
/etc/apt/keyrings/
8.2 Ajouter une clé GPG
curl -fsSL https://download.docker.com/linux/debian/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
8.3 Modifier les permissions
sudo chmod a+r /etc/apt/keyrings/docker.gpg
8.4 Pourquoi apt-key est déprécié
apt-key :
- donne une confiance globale ;
- augmente les risques ;
- ne limite pas les clés aux dépôts concernés.
Debian 13 recommande fortement :
signed-by=- des clés séparées ;
/etc/apt/keyrings/
9. Mise à jour et maintenance du système
9.1 Installer les mises à jour automatiques
sudo apt install unattended-upgrades
9.2 Fichier de configuration
/etc/apt/apt.conf.d/50unattended-upgrades
9.3 Activer les mises à jour automatiques
sudo dpkg-reconfigure unattended-upgrades
9.4 Vérifier les services systemd
systemctl status unattended-upgrades
10. Fichiers importants
/etc/apt/sources.list
/etc/apt/sources.list.d/
/etc/apt/keyrings/
/etc/apt/preferences
/etc/apt/preferences.d/
/etc/apt/apt.conf.d/
/var/lib/apt/lists/
/var/cache/apt/archives/
/var/log/apt/
/var/log/dpkg.log
11. Bloc de configuration complet Debian 13
Installation Docker sécurisée Debian 13
# Création du répertoire des clés
sudo mkdir -p /etc/apt/keyrings
# Téléchargement clé GPG Docker
curl -fsSL https://download.docker.com/linux/debian/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Permissions lecture
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Création dépôt Docker
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian trixie stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Mise à jour index APT
sudo apt update
# Installation Docker
sudo apt install docker-ce docker-ce-cli containerd.io
12. Exemples concrets
12.1 Installer Apache
sudo apt install apache2
Ports utilisés
| Service | Port |
|---|---|
| HTTP | TCP 80 |
| HTTPS | TCP 443 |
Configuration UFW
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
12.2 Installer MariaDB
sudo apt install mariadb-server
Port utilisé
| Service | Port |
|---|---|
| MariaDB | TCP 3306 |
Cas local uniquement
sudo ufw deny 3306/tcp
Cas accès distant
sudo ufw allow from 192.168.1.10 to any port 3306 proto tcp
12.3 Installer Wireshark
sudo apt install wireshark
Pendant l’installation :
- Debian demande si les utilisateurs non root peuvent capturer du trafic ;
- le système configure le groupe
wireshark.
13. Commandes utiles et dépannage
13.1 Vérifier les dépôts actifs
grep -r "^deb" /etc/apt/
13.2 Corriger les dépendances cassées
sudo apt --fix-broken install
13.3 Corriger une installation interrompue
sudo dpkg --configure -a
13.4 Réinstaller un paquet
sudo apt install --reinstall openssh-server
13.5 Vérifier les clés GPG
gpg --show-keys /etc/apt/keyrings/docker.gpg
13.6 Supprimer un dépôt défectueux
sudo rm /etc/apt/sources.list.d/docker.list
Puis :
sudo apt update
14. Logs et analyse des erreurs
14.1 Logs importants
/var/log/apt/history.log
/var/log/apt/term.log
/var/log/dpkg.log
14.2 Lire les logs
sudo less /var/log/apt/history.log
14.3 Rechercher les erreurs
sudo grep -i error /var/log/apt/term.log
14.4 Vérifier les mises à jour automatiques
journalctl -u unattended-upgrades
14.5 Ce qu’on peut analyser
| Élément | Exemple |
|---|---|
| Installation | Date et version |
| Dépendances cassées | Paquet manquant |
| Dépôt inaccessible | DNS ou réseau |
| Clé invalide | Signature absente |
15. Sécurité et bonnes pratiques
15.1 Utiliser uniquement des dépôts fiables
Évite :
- les dépôts inconnus ;
- les scripts copiés sans vérification ;
- les dépôts non signés.
15.2 Préférer HTTPS
Exemple recommandé :
https://deb.debian.org/
15.3 Ne jamais désactiver les signatures
Évite :
Acquire::AllowInsecureRepositories
15.4 Nettoyer régulièrement
sudo apt autoremove
sudo apt clean
15.5 Éviter les distributions mixtes
Ne mélange pas :
- stable ;
- testing ;
- unstable.
Le système deviendrait rapidement instable.
15.6 Sauvegarder les dépôts avant modification
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
16. Erreurs fréquentes
16.1 NO_PUBKEY
Cause :
- clé GPG absente.
Solution :
- ajouter la clé correcte.
16.2 Hash Sum mismatch
Cause :
- cache APT corrompu.
Correction :
sudo rm -rf /var/lib/apt/lists/*
sudo apt update
16.3 Failed to fetch
Causes possibles :
- DNS ;
- IPv6 ;
- proxy ;
- dépôt hors ligne.
16.4 Dépendances cassées
sudo apt --fix-broken install
16.5 Lock frontend
Cause :
- autre processus APT en cours.
Diagnostic :
ps aux | grep apt
17. Pour aller plus loin
Tu peux approfondir :
- le pinning APT ;
- les miroirs locaux ;
- les dépôts privés ;
- la création de paquets
.deb; - les snapshots Debian ;
- les backports ;
- les dépôts internes d’entreprise.
18. Liens utiles et ressources pédagogiques
Documentation officielle Debian APT
Pourquoi :
- documentation officielle Debian ;
- bonnes pratiques ;
- architecture des dépôts.
Manuel officiel sources.list
https://manpages.debian.org/trixie/apt/sources.list.5.en.html
Pourquoi :
- syntaxe complète ;
- options avancées ;
- signed-by.
Debian 13 Trixie
https://www.debian.org/releases/trixie
Pourquoi :
- documentation officielle Debian 13 ;
- nouveautés ;
- procédures d’installation.
Documentation Ubuntu APT
https://help.ubuntu.com/community/AptGet/Howto
Pourquoi :
- nombreux exemples pratiques ;
- administration Ubuntu.
OpenClassrooms Linux
https://openclassrooms.com/fr/courses/43538-reprenez-le-controle-a-laide-de-linux
Pourquoi :
- excellent support débutant ;
- commandes Linux essentielles.
OpenClassrooms Administration Linux
https://openclassrooms.com/fr/courses/7262431-administrez-un-systeme-linux
Pourquoi :
- administration serveur moderne ;
- maintenance Linux professionnelle.
RFC HTTPS
https://datatracker.ietf.org/doc/html/rfc2818
Pourquoi :
- compréhension des connexions HTTPS sécurisées.
19. Propositions de TP
TP 1 — Installation d’un serveur web
Objectifs :
- installer Apache ;
- ouvrir les ports ;
- analyser les logs.
Travail demandé :
- installer apache2 ;
- vérifier le service ;
- consulter les journaux ;
- tester UFW.
TP 2 — Ajouter un dépôt tiers sécurisé
Objectifs :
- ajouter Docker ;
- gérer une clé GPG ;
- comprendre
signed-by=.
Travail demandé :
- créer un fichier
.list; - ajouter une clé ;
- installer Docker.
TP 3 — Dépannage APT
Objectifs :
- corriger des dépendances ;
- analyser les erreurs ;
- comprendre les logs.
Travail demandé :
- casser volontairement un dépôt ;
- provoquer une erreur GPG ;
- corriger le problème.
TP 4 — Mises à jour automatiques
Objectifs :
- sécuriser un serveur ;
- automatiser les correctifs.
Travail demandé :
- installer unattended-upgrades ;
- activer les mises à jour automatiques ;
- analyser les journaux systemd.
TP 5 — Gestion avancée des paquets
Objectifs :
- comprendre les dépendances ;
- manipuler les versions.
Travail demandé :
- installer plusieurs versions ;
- utiliser
apt policy; - tester
apt-mark.
