Skip to Content
CLIAPT

📦 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 (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 package

Avantages :

  • 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 package

Dé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 autoremove

Mettre à 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-upgrade

Toujours 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 -l

Informations 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 package

Lister 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 --installed

apt-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 package

Opé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-package

dpkg 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.4

Inspection 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 -C

Configuration 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-selections

Mises à jour système

Update vs Upgrade

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 -qq

Ce 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 && reboot

full-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 restricted

Ajouter 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.key

apt-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 install

Dé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 -a

Ré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 package

Diagnostic

# 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 -20

Nettoyage

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 --purge

Nettoyer 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 -10

Libé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=7d

Astuces

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-upgrade

Commandes 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 check

Scripts 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 clean

Migration 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 reboot

Dé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 dpkg

Références rapides

Commandes essentielles

CommandeDescription
apt updateMettre à jour la liste des packages
apt upgradeMettre à jour les packages installés
apt install pkgInstaller un package
apt remove pkgSupprimer un package
apt search termRechercher un package
apt show pkgAfficher les informations d’un package
apt autoremoveSupprimer les dépendances inutiles
apt cleanNettoyer le cache

Fichiers de configuration importants

FichierUtilité
/etc/apt/sources.listDépôts principaux
/etc/apt/sources.list.d/Dépôts additionnels
/etc/apt/apt.confConfiguration 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"