📦 APT
Gestionnaire de packages pour les distributions Debian/Ubuntu et leurs dérivées.
APT (Advanced Package Tool) est le système de gestion de packages par défaut sur Debian, Ubuntu et leurs dérivées. Il simplifie l’installation, la mise à jour et la suppression de logiciels avec gestion automatique des dépendances.
apt vs apt-get vs dpkg
apt
apt (moderne)
Interface utilisateur conviviale avec progression colorée et suggestions.
# Installer un package
apt install package
# Mettre à jour la liste des packages
apt update
# Mettre à jour les packages installés
apt upgrade
# Rechercher un package
apt search package
# Afficher les informations
apt show packageAvantages :
- Interface utilisateur améliorée
- Barres de progression colorées
- Suggestions de packages connexes
- Gestion des dépendances simplifiée
Gestion des packages
Installer des packages
# Installation basique
apt install package
# Installation sans confirmation interactive
apt install -y package
# Installation sans recommandations
apt install --no-install-recommends package
# Installation multiple
apt install package1 package2 package3
# Installation depuis une version spécifique
apt install package=2.5.1
# Réinstaller un package
apt install --reinstall package
# Forcer l'installation (dépendances manquantes)
apt install -f packageDésinstaller des packages
# Suppression (garde les fichiers de config)
apt remove package
# Suppression complète (fichiers de config inclus)
apt purge package
# Suppression automatique des dépendances inutiles
apt autoremove
# Suppression avec purge des dépendances
apt purge package && apt autoremoveMettre à jour les packages
# Mettre à jour la liste des packages
apt update
# Mettre à jour les packages (sans nouveaux packages)
apt upgrade
# Mettre à jour avec installation de nouveaux packages
apt full-upgrade
# Mise à jour distribution (change de version)
apt dist-upgradeToujours exécuter apt update avant apt upgrade pour s’assurer d’avoir les dernières versions disponibles.
Recherche et information
Rechercher des packages
# Recherche basique
apt search keyword
# Recherche avec description complète
apt search --full keyword
# Recherche exacte
apt search "^package-name$"
# Recherche avec expressions régulières
apt search "python.*dev"
# Compter les résultats
apt search keyword | wc -lInformations sur les packages
# Afficher les détails d'un package
apt show package
# Version concise
apt show -a package
# Voir les dépendances
apt depends package
# Voir les packages qui dépendent de celui-ci
apt rdepends package
# Voir la politique de version
apt-cache policy package
# Voir les changements
apt changelog packageLister les packages
# Lister tous les packages disponibles
apt list
# Lister les packages installés
apt list --installed
# Lister les packages pouvant être mis à jour
apt list --upgradable
# Lister tous les packages d'un pattern
apt list 'python*'
# Voir si un package spécifique est installé
apt list package --installedapt-cache
Gestion du cache
# Statistiques du cache
apt-cache stats
# Voir les packages disponibles
apt-cache pkgnames
# Rechercher dans le cache
apt-cache search keyword
# Voir les dépendances
apt-cache depends package
# Voir les dépendances inverses
apt-cache rdepends package
# Voir la politique de version
apt-cache policy package
# Voir les sources d'un package
apt-cache showsrc packageOpérations avancées
# Générer un dump du cache
apt-cache dump
# Voir les packages non installés
apt-cache dumpavail | grep "^Package: "
# Vérifier la cohérence du cache
apt-cache check
# Voir les packages virtuels
apt-cache showpkg virtual-packagedpkg avancé
Gestion des fichiers .deb
# Installer un package local
dpkg -i package.deb
# Installer avec dépendances manquantes
dpkg -i --force-depends package.deb
# Extraire un package sans installer
dpkg -x package.deb /target/directory
# Extraire les infos de contrôle
dpkg -e package.deb /target/directory
# Vérifier l'intégrité d'un package
dpkg --contents package.deb
# Comparer les versions
dpkg --compare-versions 1.2.3 lt 1.2.4Inspection des packages installés
# Lister tous les packages installés
dpkg -l
# Lister avec filtre
dpkg -l | grep python
# Lister les packages avec état
dpkg -l | grep "^ii"
# Voir les fichiers d'un package
dpkg -L package
# Vérifier les fichiers manquants
dpkg -S /path/to/file
# Vérifier l'état d'un package
dpkg -s package
# Vérifier la somme de contrôle
dpkg -CConfiguration et maintenance
# Reconfigurer un package
dpkg-reconfigure package
# Reconfigurer avec priorité basse
dpkg-reconfigure -freadline package
# Réparer les packages cassés
dpkg --configure -a
# Purger les fichiers de config résiduels
dpkg --purge package
# Mettre en pause/unpause dpkg
echo "dpkg hold" | dpkg --set-selections
echo "dpkg install" | dpkg --set-selectionsMises à jour système
Update vs Upgrade
apt update
apt update
Met à jour la liste des packages disponibles depuis les dépôts.
# Mettre à jour tous les dépôts
apt update
# Mettre à jour un dépôt spécifique
apt update -o Dir::Etc::sourcelist="sources.list.d/custom.list"
# Mettre à jour en ignorant les erreurs
apt update --allow-unauthenticated
# Mode silencieux
apt update -qqCe que ça fait :
- Télécharge les listes de packages
- Met à jour l’index local
- Ne modifie aucun package installé
dist-upgrade
# Mise à niveau de distribution
apt dist-upgrade
# Pour passer à une nouvelle version d'Ubuntu
do-release-upgrade
# Pour Debian
apt dist-upgrade && rebootfull-upgrade est le remplaçant moderne de dist-upgrade. Les deux commandes sont équivalentes.
Sources et dépôts
Gérer sources.list
# Éditer les sources principales
nano /etc/apt/sources.list
# Éditer les sources additionnelles
nano /etc/apt/sources.list.d/
# Voir les sources actives
apt-cache policy
# Voir les URLs des dépôts
grep -r "^deb" /etc/apt/Format des sources
# Format standard
deb http://archive.ubuntu.com/ubuntu/ focal main restricted
# Avec source
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted
# Dépôt de sécurité
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted
# Dépôt de mises à jour
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restrictedAjouter des PPA (Ubuntu)
# Ajouter un PPA
add-apt-repository ppa:username/ppa-name
# Ajouter sans confirmation interactive
add-apt-repository -y ppa:username/ppa-name
# Supprimer un PPA
add-apt-repository --remove ppa:username/ppa-name
# Lister les PPA ajoutés
ls /etc/apt/sources.list.d/Gestion des clés GPG
# Ajouter une clé depuis un serveur
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEYID
# Ajouter une clé depuis un fichier
apt-key add filename.asc
# Lister les clés
apt-key list
# Supprimer une clé
apt-key del KEYID
# Exporter une clé
apt-key export KEYID > public.keyapt-key est déprécié. Utilisez /etc/apt/keyrings/ pour les nouvelles installations.
Dépannage
Réparer les packages cassés
# Réparer les dépendances cassées
apt --fix-broken install
# Ou version courte
apt -f install
# Forcer la configuration
dpkg --configure -a
# Nettoyer et réparer
apt clean && apt update && apt -f installDébloquer dpkg
# Vérifier si dpkg est bloqué
ps aux | grep dpkg
# Tuer les processus dpkg
sudo pkill -f dpkg
# Supprimer les fichiers de lock
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/cache/apt/archives/lock
# Reconfigurer
sudo dpkg --configure -aRésoudre les problèmes de dépendances
# Voir les dépendances manquantes
apt-cache depends package
# Installer les dépendances manuellement
apt install dependency1 dependency2
# Forcer l'installation
apt install --fix-missing package
# Utiliser aptitude pour résolution avancée
aptitude install packageDiagnostic
# Vérifier l'état des packages
dpkg -l | grep "^..r"
# Voir les packages cassés
dpkg -l | grep "^..[rc]"
# Vérifier la cohérence
apt-cache check
# Voir les erreurs récentes
cat /var/log/dpkg.log | tail -20
# Voir les erreurs APT
cat /var/log/apt/history.log | tail -20Nettoyage
Supprimer les packages inutiles
# Supprimer les dépendances inutiles
apt autoremove
# Supprimer avec purge des configs
apt autoremove --purge
# Voir ce qui serait supprimé
apt autoremove --dry-run
# Supprimer les packages orphelins
deborphan | xargs apt-get -y remove --purgeNettoyer le cache APT
# Nettoyer le cache complet
apt clean
# Nettoyer uniquement les packages obsolètes
apt autoclean
# Voir la taille du cache
du -sh /var/cache/apt/archives/
# Voir les packages dans le cache
ls /var/cache/apt/archives/ | head -10Libérer de l’espace disque
# Nettoyage complet
apt clean && apt autoremove --purge
# Supprimer les vieux kernels
apt remove --purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d')
# Supprimer les fichiers temporaires
rm -rf /tmp/*
rm -rf /var/tmp/*
# Vider les logs
journalctl --vacuum-time=7dAstuces
Alias utiles
# À ajouter dans .bashrc ou .zshrc
alias a='apt'
alias ai='apt install'
alias ar='apt remove'
alias ap='apt purge'
alias as='apt search'
alias ash='apt show'
alias au='apt update && apt upgrade'
alias af='apt full-upgrade'
alias ac='apt clean'
alias aa='apt autoremove'One-liners pratiques
# Mettre à jour tout le système
apt update && apt full-upgrade -y && apt autoremove --purge -y && apt clean
# Installer les build essentials
apt install -y build-essential curl git vim
# Supprimer tous les packages d'un thème
apt remove --purge $(dpkg -l | grep gnome | awk '{print $2}')
# Voir les 10 plus gros packages
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -10
# Compter les packages installés
dpkg -l | grep '^ii' | wc -l
# Voir les packages récemment installés
grep " install " /var/log/dpkg.log | tail -10
# Sauvegarder la liste des packages installés
dpkg --get-selections > package-list.txt
# Restaurer la liste des packages
dpkg --set-selections < package-list.txt && apt-get dselect-upgradeCommandes de diagnostic
# Voir l'espace utilisé par les packages
dpkg-query -Wf '${Installed-Size;10}\t${Package}\n' | sort -k1,1n
# Vérifier les packages avec fichiers de configuration modifiés
dpkg-query -W -f='${Conffiles}\n' '*' | grep -v '^$' | grep -o '/[^ ]*$'
# Voir les packages qui n'ont pas de dépendances inverses
comm -23 <(apt-mark showmanual | sort -u) <(apt-cache rdepends --installed $(apt-mark showmanual) | grep -v "^[^:]*:$" | cut -d: -f1 | sort -u)
# Vérifier la santé du système
apt-cache policy && dpkg --audit && apt-get checkScripts utiles
#!/bin/bash
# backup-packages.sh - Sauvegarder les packages installés
# Liste des packages installés explicitement
apt-mark showmanual > installed-packages.txt
# Liste de tous les packages
dpkg --get-selections > all-packages.txt
# Sauvegarder les sources
cp /etc/apt/sources.list* backup-sources/
# Sauvegarder les clés
apt-key exportall > backup-keys.asc#!/bin/bash
# system-cleanup.sh - Nettoyage complet du système
echo "Mise à jour des listes de packages..."
apt update
echo "Suppression des packages inutiles..."
apt autoremove --purge -y
echo "Nettoyage du cache..."
apt clean
echo "Suppression des fichiers temporaires..."
rm -rf /tmp/*
rm -rf /var/tmp/*
echo "Nettoyage des logs anciens..."
journalctl --vacuum-time=30d
echo "Nettoyage terminé !"Exemples pratiques
Installation d’un environnement de développement
# Mettre à jour le système
apt update && apt full-upgrade -y
# Installer les outils de base
apt install -y build-essential curl wget git vim
# Installer Node.js (via NodeSource)
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt install -y nodejs
# Installer Docker
apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update && apt install -y docker-ce docker-ce-cli containerd.io
# Nettoyer
apt autoremove --purge -y && apt cleanMigration vers une nouvelle version
# Sauvegarder avant la migration
dpkg --get-selections > package-backup.txt
cp /etc/apt/sources.list sources-backup
# Mettre à jour vers la nouvelle version
sed -i 's/focal/jammy/g' /etc/apt/sources.list
apt update
# Mise à niveau complète
apt full-upgrade -y
# Nettoyage post-migration
apt autoremove --purge -y
apt clean
# Redémarrage si nécessaire
rebootDépannage avancé
# Réparer complètement le système
dpkg --configure -a
apt --fix-broken install -y
apt update
apt full-upgrade -y
apt autoremove --purge -y
apt clean
# Vérifier l'intégrité
dpkg -C
apt-cache check
# Réinstaller les packages critiques
apt install --reinstall -y apt dpkgRéférences rapides
Commandes essentielles
| Commande | Description |
|---|---|
apt update | Mettre à jour la liste des packages |
apt upgrade | Mettre à jour les packages installés |
apt install pkg | Installer un package |
apt remove pkg | Supprimer un package |
apt search term | Rechercher un package |
apt show pkg | Afficher les informations d’un package |
apt autoremove | Supprimer les dépendances inutiles |
apt clean | Nettoyer le cache |
Fichiers de configuration importants
| Fichier | Utilité |
|---|---|
/etc/apt/sources.list | Dépôts principaux |
/etc/apt/sources.list.d/ | Dépôts additionnels |
/etc/apt/apt.conf | Configuration APT |
/var/cache/apt/archives/ | Cache des packages |
/var/lib/dpkg/status | État des packages installés |
Variables d’environnement utiles
# Forcer une architecture spécifique
export DEBIAN_FRONTEND=noninteractive
# Utiliser un proxy
export http_proxy=http://proxy:8080
export https_proxy=http://proxy:8080
# Désactiver les recommandations
export APT::Install-Recommends="false"