Gestion des paquets Ubuntu : Feuille de rappel APT et dpkg

Commandes essentielles d'APT et de dpkg pour les paquets Ubuntu

Le système de gestion des paquets d’Ubuntu est le pilier de l’installation et de l’entretien du logiciel, ce qui en fait une connaissance essentielle pour tout utilisateur de Linux ou administrateur système.

tetris Cette image est générée par AI model Flux 1 dev.

Qu’est-ce que la gestion des paquets APT ?

APT (Advanced Package Tool) est le système de gestion des paquets principal d’Ubuntu, hérité de Debian. Il s’agit d’un outil puissant en ligne de commande pour l’installation, la mise à jour et la suppression de paquets logiciels. APT gère automatiquement la résolution des dépendances, se connecte aux dépôts officiels d’Ubuntu et est la méthode traditionnelle pour gérer les paquets système sur les distributions Ubuntu et Debian. Si vous êtes nouveau sur Ubuntu, consultez notre guide sur comment installer Ubuntu 24.04 et les outils utiles pour commencer avec un système correctement configuré.

Caractéristiques clés :

  • Natif à Ubuntu/Debian : Intégré, aucun téléchargement supplémentaire nécessaire
  • Bibliothèques partagées : Utilisation efficace du disque via les dépendances système partagées
  • Mises à jour manuelles : Vous contrôlez quand les paquets sont mis à jour
  • Aucun sandboxing : Les paquets ont un accès complet au système (adapté aux outils système)
  • Léger : Aucun démon en arrière-plan, fonctionne uniquement lorsqu’il est invoqué
  • Écosystème mûr : Décennies de développement, extrêmement stable

Comparaison des gestionnaires de paquets

Ubuntu prend en charge plusieurs systèmes de gestion des paquets. Voici comment les principales opérations se comparent :

Opération APT Snap Flatpak
Recherche apt search keyword snap find keyword flatpak search keyword
Installation sudo apt install package sudo snap install package flatpak install flathub app.id
Liste des paquets installés apt list --installed snap list flatpak list --app
Afficher les informations apt show package snap info package flatpak info app.id
Mettre à jour tous les paquets sudo apt update && sudo apt upgrade sudo snap refresh flatpak update
Mettre à jour un seul paquet sudo apt install --only-upgrade pkg sudo snap refresh package flatpak update app.id
Supprimer sudo apt remove package sudo snap remove package flatpak uninstall app.id
Nettoyage sudo apt autoremove snap remove --revision=N flatpak uninstall --unused
Dépôt /etc/apt/sources.list Magasin Snap (intégré) Ajout avec flatpak remote-add

Comparaison rapide des fonctionnalités

Fonctionnalité APT Snap Flatpak
Mises à jour automatiques Non Oui Non
Sandboxing Non Oui Oui
Dépendances Bibliothèques système Emballées Runtimes partagés
Taille du paquet Petite (5-50 Mo) Grande (50-500 Mo) Moyenne (20-200 Mo)
Accès root requis Oui Oui Non (installation utilisateur)
Vitesse de démarrage Rapide Plus lente Rapide
Meilleur pour Paquets système Applications universelles Applications de bureau

À propos de ce guide

Ce guide se concentre sur APT (apt/apt-get/dpkg) - le système traditionnel de gestion des paquets d’Ubuntu. APT est essentiel pour gérer les paquets système, les bibliothèques et les services sur les systèmes Ubuntu et Debian.

Pour d’autres gestionnaires de paquets :

Chaque gestionnaire de paquets a ses propres forces. Utilisez APT pour les paquets système et les dépendances, Snap pour la compatibilité entre versions et les mises à jour automatiques, et Flatpak pour les applications de bureau avec des permissions granulaires.


Gestion des paquets APT - Guide détaillé

Comprendre APT vs apt-get

APT (apt) - Choix moderne

Introduit avec Ubuntu 14.04, apt combine les fonctionnalités de apt-get et apt-cache avec une expérience utilisateur améliorée :

Avantages :

  • Barres de progression et sortie colorée
  • Commandes plus intuitives
  • Sortie plus claire pour la lecture humaine
  • Combine plusieurs fonctionnalités d’outils

Quand l’utiliser : Opérations interactives quotidiennes en ligne de commande

apt-get - Choix traditionnel

L’outil original de gestion des paquets, encore largement utilisé :

Avantages :

  • API plus stable (meilleur pour les scripts)
  • Compatibilité ascendante
  • Format de sortie prévisible
  • Contrôle plus fin

Quand l’utiliser : Scripts shell, automatisation, systèmes hérités

Conseil pro : Pour une navigation plus rapide dans le terminal et une efficacité accrue, consultez notre feuille de triche des raccourcis clavier d’Ubuntu pour améliorer votre productivité lors de la gestion des paquets.

Commandes essentielles de gestion des paquets

Mise à jour des listes de paquets

Mettez toujours à jour les listes de paquets avant d’installer ou de mettre à jour :

# Mettre à jour l'index des paquets
sudo apt update

# Ou avec apt-get
sudo apt-get update

Cette commande rafraîchit la base de données locale avec des informations sur les paquets disponibles et leurs versions depuis les dépôts configurés.

Installation de paquets

Installation basique :

# Installer un seul paquet
sudo apt install package-name

# Installer plusieurs paquets
sudo apt install package1 package2 package3

# Installer une version spécifique
sudo apt install package-name=version-number

Exemples :

# Installer le serveur web Nginx
sudo apt install nginx

# Installer Python et pip
sudo apt install python3 python3-pip

# Installer les outils de développement
sudo apt install build-essential

# Installer des outils de surveillance du système
sudo apt install htop

Pour des besoins de surveillance spécialisés, tels que le suivi des performances du GPU sur les systèmes avec des cartes NVIDIA, consultez notre guide sur les applications de surveillance du GPU sous Linux/Ubuntu.

Installer sans prompts (utile pour les scripts) :

sudo apt install -y package-name

# Ou
sudo DEBIAN_FRONTEND=noninteractive apt install -y package-name

Installer à partir d’un fichier .deb :

# Méthode 1 : En utilisant apt (recommandée, gère les dépendances)
sudo apt install ./package.deb

# Méthode 2 : En utilisant dpkg
sudo dpkg -i package.deb
sudo apt install -f  # Corriger les dépendances manquantes

Note : Lorsque vous travaillez avec des fichiers .deb téléchargés, vous pouvez souhaiter utiliser un gestionnaire de fichiers avec un menu contextuel convivial. Consultez notre comparaison des gestionnaires de fichiers pour Ubuntu 24.04 (Nautilus vs Nemo vs Dolphin vs Caja) pour en trouver un qui convient à votre workflow.

Mise à jour des paquets

Mettre à jour les paquets installés :

# Mettre à jour tous les paquets (sécurisé, ne supprime pas les paquets)
sudo apt upgrade

# Mettre à jour un paquet spécifique
sudo apt install --only-upgrade package-name

# Mise à jour complète (peut supprimer des paquets pour résoudre les dépendances)
sudo apt full-upgrade

# Mise à jour de distribution (pour les mises à niveau de version majeure)
sudo apt dist-upgrade

Séquence de mise à jour complète :

# Procédure de mise à jour recommandée
sudo apt update
sudo apt upgrade -y
sudo apt autoremove
sudo apt autoclean

Mettre à jour la version d’Ubuntu :

# Pour la mise à niveau de LTS vers la prochaine LTS
sudo do-release-upgrade

# Pour toute mise à jour de version
sudo do-release-upgrade -d

Liste des paquets

Lister les paquets installés :

# Tous les paquets installés
apt list --installed

# Avec filtre grep
apt list --installed | grep package-name

# Compter les paquets installés
apt list --installed | wc -l

# En utilisant dpkg
dpkg -l
dpkg --list
dpkg -l | grep package-name

Lister les paquets mis à jour :

# Afficher les paquets avec des mises à jour disponibles
apt list --upgradable

# Simulation détaillée de mise à jour
apt list --upgradable -a

Lister tous les paquets disponibles :

# Tous les paquets dans les dépôts
apt list

# Liste depuis un dépôt spécifique
apt list | grep "source-name"

Recherche de paquets

Rechercher les noms et descriptions des paquets :

# Recherche avec apt
apt search keyword

# Recherche insensible à la casse
apt search -i keyword

# Afficher uniquement les noms de paquets
apt-cache search keyword

# Recherche uniquement les noms de paquets (plus rapide)
apt-cache search --names-only keyword

Exemples :

# Recherche d'éditeur
apt search text editor

# Recherche de base de données
apt search database

# Recherche de paquets Python
apt search python | grep python3

Afficher les informations sur les paquets

Informations détaillées sur les paquets :

# Afficher les détails du paquet
apt show package-name

# En utilisant apt-cache
apt-cache show package-name

# Afficher les dépendances du paquet
apt-cache depends package-name

# Afficher les dépendances inverses
apt-cache rdepends package-name

# Vérifier la politique et les versions du paquet
apt-cache policy package-name

# Afficher les statistiques du paquet
apt-cache stats

Vérifier si un paquet est installé :

# Méthode 1
dpkg -s package-name

# Méthode 2
dpkg -l package-name

# Méthode 3
apt list --installed package-name

# Méthode 4 (code de sortie 0 si installé)
dpkg-query -W package-name

Suppression de paquets

Supprimer des paquets :

# Supprimer un paquet (garder les fichiers de configuration)
sudo apt remove package-name

# Supprimer un paquet et les fichiers de configuration (purger)
sudo apt purge package-name

# Supprimer avec dépendances
sudo apt autoremove package-name

# Supprimer complètement le paquet et les configurations
sudo apt purge package-name && sudo apt autoremove

Nettoyer le système :

# Supprimer les dépendances inutilisées
sudo apt autoremove

# Supprimer avec purge
sudo apt autoremove --purge

# Supprimer les fichiers de paquet téléchargés
sudo apt clean

# Supprimer les anciennes versions des paquets
sudo apt autoclean

Vérifier l’utilisation du disque :

# Vérifier la taille du cache
du -sh /var/cache/apt/archives

# Vérifier la taille totale des paquets
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

Bloquer les paquets (empêcher les mises à jour)

Bloquer des paquets :

# Bloquer un paquet à la version actuelle
sudo apt-mark hold package-name

# Débloquer un paquet
sudo apt-mark unhold package-name

# Afficher les paquets bloqués
apt-mark showhold

# Bloquer plusieurs paquets
sudo apt-mark hold package1 package2 package3

Cas d’utilisation : Empêcher les versions spécifiques de logiciels de se mettre à jour automatiquement.

Utilisation de dpkg - Outil de gestion de paquets bas niveau

dpkg est le gestionnaire de paquets sous-jacent utilisé par APT :

Commandes de base de dpkg :

# Installer un paquet
sudo dpkg -i package.deb

# Supprimer un paquet
sudo dpkg -r package-name

# Purger un paquet
sudo dpkg -P package-name

# Lister les paquets installés
dpkg -l

# Lister les fichiers dans un paquet
dpkg -L package-name

# Trouver quel paquet possède un fichier
dpkg -S /path/to/file

# Vérifier l'état d'un paquet
dpkg -s package-name

# Réconfigurer un paquet
sudo dpkg-reconfigure package-name

# Vérifier l'intégrité d'un paquet
dpkg -V package-name

Corriger les paquets cassés :

# Réconfigurer les paquets cassés
sudo dpkg --configure -a

# Corriger les dépendances manquantes
sudo apt install -f

# Forcer le réinstallation
sudo apt install --reinstall package-name

Gestion des dépôts

Afficher les dépôts

Vérifier les dépôts configurés :

# Afficher la liste des sources
cat /etc/apt/sources.list

# Afficher les sources supplémentaires
ls /etc/apt/sources.list.d/

# Afficher tous les dépôts activés
grep -r --include '*.list' '^deb ' /etc/apt/

Ajouter des dépôts

Ajouter un PPA (Personal Package Archive) :

# Ajouter un dépôt PPA
sudo add-apt-repository ppa:user/ppa-name
sudo apt update

# Exemple : Ajouter le PPA Git
sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git

Ajouter manuellement un dépôt :

# Ajouter un dépôt à sources.list
echo "deb http://repository-url distribution component" | sudo tee -a /etc/apt/sources.list.d/custom.list

# Ajouter une clé GPG
wget -qO - https://example.com/key.gpg | sudo apt-key add -

# Mettre à jour les listes de paquets
sudo apt update

Gestion moderne des clés (Ubuntu 22.04+) :

# Télécharger et ajouter la clé au keyring
wget -qO - https://example.com/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/custom.gpg

# Ajouter un dépôt signé
echo "deb [signed-by=/etc/apt/keyrings/custom.gpg] http://repo-url dist component" | sudo tee /etc/apt/sources.list.d/custom.list

Supprimer des dépôts

# Supprimer un PPA
sudo add-apt-repository --remove ppa:user/ppa-name

# Ou supprimer le fichier de liste
sudo rm /etc/apt/sources.list.d/ppa-name.list

# Mettre à jour
sudo apt update

Gestionnaires de paquets alternatifs

Ubuntu prend également en charge Snap et Flatpak pour l’emballage d’applications universelles :

  • Snap : Consultez notre guide complet sur le gestionnaire de paquets Snap pour des informations détaillées sur l’installation, l’utilisation, les canaux, le confinement et la résolution des problèmes.

  • Flatpak : Consultez notre guide complet sur le gestionnaire de paquets Flatpak pour des informations détaillées sur l’installation, Flathub, les permissions, les runtimes et la gestion.

Gestion des paquets avancée

Simuler des opérations (test sans exécution)

# Simuler l'installation
apt install -s package-name

# Simuler la mise à jour
apt upgrade -s

# Afficher ce qui serait installé
apt-cache showpkg package-name

Télécharger des paquets sans les installer

# Télécharger uniquement le paquet
apt download package-name

# Télécharger avec les dépendances
apt install --download-only package-name

# Télécharger dans un répertoire spécifique
cd /path/to/dir
apt download package-name

Trouver les fichiers de paquets

# Quel paquet fournit un fichier
dpkg -S /path/to/file

# Rechercher des fichiers dans les paquets (y compris ceux non installés)
apt-file search filename

# Installer apt-file d'abord
sudo apt install apt-file
sudo apt-file update

Fixage de paquets

Créer /etc/apt/preferences pour contrôler les versions des paquets :

# Fixer un paquet à une version spécifique
sudo nano /etc/apt/preferences

Ajouter :

Package: package-name
Pin: version 1.2.3*
Pin-Priority: 1001

Vérifier les vulnérabilités des paquets

# Vérifier les mises à jour de sécurité
sudo apt list --upgradable | grep security

# Vérifier un paquet spécifique pour les CVE
apt-cache policy package-name

Dépannage des problèmes courants

Corriger les paquets cassés

# Méthode 1 : Corriger les dépendances
sudo apt install -f

# Méthode 2 : Réconfigurer les paquets
sudo dpkg --configure -a

# Méthode 3 : Nettoyer et mettre à jour
sudo apt clean
sudo apt update
sudo apt upgrade

# Méthode 4 : Corriger forcé
sudo apt --fix-broken install

Corriger l’erreur “base de données verrouillée”

# Supprimer les fichiers de verrouillage (seulement si aucun processus apt n'est en cours !)
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
sudo dpkg --configure -a

Vérifier d’abord les processus en cours :

ps aux | grep -i apt
sudo lsof /var/lib/dpkg/lock-frontend

Erreur de somme de hachage

# Nettoyer le cache et réessayer
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update

Erreurs GPG/clés

# Réajouter la clé
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID

# Ou télécharger la clé
wget -qO - https://repo-url/key.gpg | sudo apt-key add -

# Approche moderne (Ubuntu 22.04+)
wget -qO - https://repo-url/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/repo.gpg

Dépendances non satisfaites

# Essayer aptitude (meilleur résolveur de dépendances)
sudo apt install aptitude
sudo aptitude install package-name

# Ou résolution manuelle
sudo apt install package-name package-dependency

Dépôt non trouvé (404)

# Mettre à jour vers le dépôt correct
sudo nano /etc/apt/sources.list

# Changer le nom de version ancienne au nom actuel
# Ou supprimer le PPA obsolète
sudo add-apt-repository --remove ppa:name/ppa

Bonnes pratiques

Maintenance régulière

Routine hebdomadaire :

#!/bin/bash
# Script de mise à jour du système

echo "Mise à jour des listes de paquets..."
sudo apt update

echo "Mise à jour des paquets..."
sudo apt upgrade -y

echo "Suppression des paquets inutilisés..."
sudo apt autoremove -y

echo "Nettoyage du cache des paquets..."
sudo apt autoclean

echo "Mise à jour terminée !"

Mises à jour de sécurité

Mises à jour automatiques pour les correctifs de sécurité :

# Installer unattended-upgrades
sudo apt install unattended-upgrades

# Configurer
sudo dpkg-reconfigure unattended-upgrades

# Éditer la configuration
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Configuration du serveur : Si vous gérez un serveur Ubuntu, une configuration réseau correcte est essentielle pour des téléchargements de paquets et des mises à jour système fiables. Apprenez comment changer une adresse IP statique sur Ubuntu Server pour assurer une connectivité stable pour vos opérations de gestion des paquets.

Sauvegarde de la liste des paquets

Exporter les paquets installés :

# Créer une sauvegarde
dpkg --get-selections > ~/package-list.txt

# Ou avec les paquets installés explicitement
apt-mark showmanual > ~/manually-installed.txt

# Restaurer sur un autre système
sudo dpkg --set-selections < ~/package-list.txt
sudo apt-get dselect-upgrade

Vérifier l’état du système

# Vérifier les dépendances cassées
sudo apt check

# Vérifier tous les paquets
sudo debsums -c

# Vérifier les journaux du système
journalctl -xe | grep -i apt
tail -f /var/log/apt/history.log

Optimisation des performances

Téléchargement plus rapide des paquets

Activer les téléchargements parallèles :

Modifier /etc/apt/apt.conf.d/99parallel :

echo 'Acquire::Queue-Mode "host";' | sudo tee /etc/apt/apt.conf.d/99parallel
echo 'Acquire::http::Pipeline-Depth "5";' | sudo tee -a /etc/apt/apt.conf.d/99parallel

Utiliser le miroir le plus rapide :

# Installer apt-fast
sudo add-apt-repository ppa:apt-fast/stable
sudo apt update
sudo apt install apt-fast

# Utiliser apt-fast à la place d'apt
sudo apt-fast install package-name

Réduire la taille du cache

# Limiter le cache à 100 Mo
echo 'APT::Archives::MaxSize "100";' | sudo tee /etc/apt/apt.conf.d/99max-cache

Scripts utiles de gestion des paquets

Mettre à jour tous les gestionnaires de paquets

#!/bin/bash
# Mettre à jour tous les gestionnaires de paquets

echo "=== Mise à jour APT ==="
sudo apt update && sudo apt upgrade -y

echo "=== Mise à jour Snap ==="
sudo snap refresh

echo "=== Mise à jour Flatpak ==="
flatpak update -y

echo "Tous les systèmes mis à jour !"

Trouver les paquets volumineux

# Liste des paquets installés les plus volumineux
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -20

# Ou format plus lisible
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -20 | awk '{printf "%.2f MB\t%s\n", $1/1024, $2}'

Audit des paquets

#!/bin/bash
# Audit du système de paquets

echo "=== Statistiques des paquets du système ==="
echo "Paquets installés : $(dpkg -l | grep ^ii | wc -l)"
echo "Paquets mis à jour : $(apt list --upgradable 2>/dev/null | grep -c upgradable)"
echo "Paquets bloqués : $(apt-mark showhold | wc -l)"
echo "Auto-removables : $(apt autoremove --dry-run | grep -Po '^\d+')"
echo "Taille du cache : $(du -sh /var/cache/apt/archives | cut -f1)"

Feuille de triche rapide

Commandes essentielles :

# Mise à jour & mise à jour
sudo apt update && sudo apt upgrade -y

# Installer un paquet
sudo apt install package-name

# Supprimer un paquet
sudo apt remove package-name

# Rechercher un paquet
apt search keyword

# Afficher les informations sur un paquet
apt show package-name

# Liste des paquets installés
apt list --installed

# Nettoyer le système
sudo apt autoremove && sudo apt autoclean

# Corriger les paquets cassés
sudo apt install -f && sudo dpkg --configure -a

Conclusion

Maîtriser le système de gestion des paquets d’Ubuntu est essentiel pour une administration système efficace. Que vous utilisiez la commande moderne apt pour les sessions interactives, apt-get pour le scripting, ou que vous exploriez les paquets universels avec Snap et Flatpak, comprendre ces outils vous aidera à maintenir un système Ubuntu sécurisé, à jour et bien organisé.

Commencez par les commandes de base, incorporez progressivement des techniques avancées, et assurez-vous toujours que votre système est à jour. Une maintenance régulière, combinée aux bonnes pratiques, garantit une expérience Ubuntu fluide et fiable.

Conseil pro : Exécutez toujours sudo apt update avant d’installer ou de mettre à jour des paquets pour vous assurer de travailler avec les dernières informations sur les paquets !

Liens utiles

Articles connexes sur ce site