Gestion des packages
Table des matières
- Qu'est-ce qu'un gestionnaire de packages ?
- APT (Debian/Ubuntu)
- YUM/DNF (RedHat/CentOS/Fedora)
- Snap et Flatpak
- Compiler depuis les sources
- Exercices pratiques
1 - Qu'est-ce qu'un gestionnaire de packages ?
Définition
Un gestionnaire de packages automatise :
- L'installation de logiciels
- La mise à jour
- La suppression
- La gestion des dépendances
Sans gestionnaire de packages
# Installation manuelle (complexe)
wget https://example.com/logiciel.tar.gz
tar xzf logiciel.tar.gz
cd logiciel
./configure
make
sudo make install
# + installer chaque dépendance manuellement...
Avec gestionnaire de packages
# Installation simple
sudo apt install logiciel
# Tout est géré automatiquement !
Principaux gestionnaires
| Distribution | Gestionnaire | Format |
|---|---|---|
| Debian/Ubuntu | APT (dpkg) | .deb |
| RedHat/CentOS/Fedora | YUM/DNF (rpm) | .rpm |
| Arch Linux | pacman | .pkg.tar.zst |
| Alpine | apk | .apk |
| Universel | Snap, Flatpak | - |
🔝 Retour à la table des matières
2 - APT (Debian/Ubuntu)
APT = Advanced Package Tool
Commandes essentielles
| Commande | Description |
|---|---|
apt update | Mettre à jour la liste des packages |
apt upgrade | Mettre à jour les packages installés |
apt install | Installer un package |
apt remove | Supprimer un package |
apt purge | Supprimer package + configuration |
apt search | Rechercher un package |
apt show | Informations sur un package |
apt autoremove | Supprimer les dépendances orphelines |
Mise à jour du système
# Mettre à jour la liste des packages disponibles
sudo apt update
# Mettre à jour tous les packages installés
sudo apt upgrade
# Mettre à jour + gérer les nouvelles dépendances
sudo apt full-upgrade
# Tout en une commande
sudo apt update && sudo apt upgrade -y
Installer des packages
# Installer un package
sudo apt install nginx
# Installer plusieurs packages
sudo apt install nginx vim curl git
# Installer sans confirmation
sudo apt install -y nginx
# Installer une version spécifique
sudo apt install nginx=1.18.0-0ubuntu1
# Réinstaller un package
sudo apt reinstall nginx
Supprimer des packages
# Supprimer un package (garde la configuration)
sudo apt remove nginx
# Supprimer package + fichiers de configuration
sudo apt purge nginx
# Supprimer les dépendances inutilisées
sudo apt autoremove
# Nettoyage complet
sudo apt purge nginx && sudo apt autoremove
Rechercher des packages
# Rechercher par nom
apt search nginx
# Rechercher avec description
apt search "web server"
# Informations détaillées
apt show nginx
# Lister les versions disponibles
apt list nginx -a
# Lister les packages installés
apt list --installed
# Lister les packages upgradables
apt list --upgradable
Gestion des dépôts
Les dépôts sont configurés dans /etc/apt/sources.list et /etc/apt/sources.list.d/
# Ajouter un dépôt PPA (Ubuntu)
sudo add-apt-repository ppa:ondrej/php
sudo apt update
# Ajouter un dépôt manuellement
echo "deb https://repo.example.com/apt stable main" | sudo tee /etc/apt/sources.list.d/example.list
# Ajouter une clé GPG
curl -fsSL https://repo.example.com/gpg | sudo apt-key add -
Toujours faire apt update après avoir ajouté un nouveau dépôt !
🔝 Retour à la table des matières
3 - YUM/DNF (RedHat/CentOS/Fedora)
DNF est le successeur moderne de YUM.
Commandes essentielles
| APT | DNF/YUM | Description |
|---|---|---|
apt update | dnf check-update | Vérifier les mises à jour |
apt upgrade | dnf upgrade | Mettre à jour |
apt install | dnf install | Installer |
apt remove | dnf remove | Supprimer |
apt search | dnf search | Rechercher |
apt autoremove | dnf autoremove | Nettoyer |
Exemples DNF
# Mettre à jour le système
sudo dnf upgrade
# Installer un package
sudo dnf install nginx
# Supprimer un package
sudo dnf remove nginx
# Rechercher
dnf search httpd
# Informations
dnf info nginx
# Lister les packages installés
dnf list installed
Gestion des dépôts (DNF)
# Lister les dépôts
dnf repolist
# Activer/désactiver un dépôt
sudo dnf config-manager --enable epel
sudo dnf config-manager --disable epel
# Ajouter le dépôt EPEL
sudo dnf install epel-release
Tableau de correspondance
| Action | APT (Debian/Ubuntu) | DNF (Fedora/RHEL) |
|---|---|---|
| Mise à jour liste | apt update | dnf check-update |
| Mise à jour système | apt upgrade | dnf upgrade |
| Installer | apt install pkg | dnf install pkg |
| Supprimer | apt remove pkg | dnf remove pkg |
| Rechercher | apt search term | dnf search term |
| Info | apt show pkg | dnf info pkg |
| Nettoyer | apt autoremove | dnf autoremove |
🔝 Retour à la table des matières
4 - Snap et Flatpak
Snap (Canonical)
Packages universels avec sandboxing.
# Installer snap (si pas présent)
sudo apt install snapd
# Rechercher une application
snap find vscode
# Installer
sudo snap install code --classic
sudo snap install docker
# Mettre à jour
sudo snap refresh
# Supprimer
sudo snap remove code
# Lister les snaps installés
snap list
Flatpak
Alternative à Snap, plus orientée desktop.
# Installer flatpak
sudo apt install flatpak
# Ajouter le dépôt Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Installer une application
flatpak install flathub org.gimp.GIMP
# Lancer
flatpak run org.gimp.GIMP
# Mettre à jour
flatpak update
Comparaison
| Aspect | APT | Snap | Flatpak |
|---|---|---|---|
| Isolation | Non | Oui | Oui |
| Mises à jour auto | Non | Oui | Optionnel |
| Taille | Petite | Grande | Grande |
| Usage | Système | Apps desktop | Apps desktop |
| Rollback | Non | Oui | Oui |
Pour les serveurs, privilégiez APT/DNF. Snap et Flatpak sont plus adaptés aux applications desktop.
🔝 Retour à la table des matières
5 - Compiler depuis les sources
Parfois, vous devez compiler un logiciel depuis les sources.
Workflow typique
Prérequis
# Installer les outils de compilation
sudo apt install build-essential
# Inclut : gcc, g++, make, etc.
# Outils supplémentaires courants
sudo apt install autoconf automake libtool
Exemple complet
# 1. Télécharger les sources
wget https://example.com/logiciel-1.0.tar.gz
# 2. Extraire
tar xzf logiciel-1.0.tar.gz
cd logiciel-1.0
# 3. Configurer (vérifie les dépendances)
./configure --prefix=/usr/local
# 4. Compiler
make
# 5. Installer
sudo make install
# 6. Vérifier
which logiciel
logiciel --version
Options de configure courantes
# Installer dans un répertoire personnalisé
./configure --prefix=/opt/logiciel
# Activer/désactiver des fonctionnalités
./configure --enable-feature --disable-autre
# Voir toutes les options
./configure --help
checkinstall - Créer un package .deb
# Installer checkinstall
sudo apt install checkinstall
# Au lieu de "make install", utilisez :
sudo checkinstall
# Crée un .deb et l'installe
# Permet de désinstaller proprement avec apt
Compiler depuis les sources doit être un dernier recours. Utilisez les gestionnaires de packages quand c'est possible.
🔝 Retour à la table des matières
6 - Exercices pratiques
Exercice 1 : Gestion basique avec APT
# 1. Mettez à jour la liste des packages
sudo apt update
# 2. Vérifiez les packages à mettre à jour
apt list --upgradable
# 3. Installez htop (moniteur de processus)
sudo apt install htop
# 4. Vérifiez l'installation
htop --version
# 5. Affichez les informations du package
apt show htop
# 6. Supprimez htop
sudo apt remove htop
# 7. Nettoyez les dépendances orphelines
sudo apt autoremove
Exercice 2 : Recherche de packages
# 1. Recherchez les packages liés à "json"
apt search json | head -20
# 2. Recherchez les packages "python"
apt search ^python3 | head -20
# 3. Comptez les packages installés
apt list --installed | wc -l
Exercice 3 : Gestion des dépôts
# 1. Listez les sources configurées
cat /etc/apt/sources.list
# 2. Listez les fichiers de sources additionnels
ls /etc/apt/sources.list.d/
Quiz
Q1. Quelle commande rafraîchit la liste des packages disponibles ?
Réponse
sudo apt update
Q2. Quelle est la différence entre remove et purge ?
Réponse
remove supprime le package mais garde les fichiers de configuration.
purge supprime le package ET les fichiers de configuration.
Q3. Comment installer un package sans confirmation ?
Réponse
sudo apt install -y package
🔝 Retour à la table des matières
Points clés à retenir
- Toujours
apt updateavantapt install apt upgradepour mettre à jour le systèmeapt removevsapt purge(conservation des configs)apt autoremovepour nettoyer- APT = Debian/Ubuntu, DNF = Fedora/RHEL
- Snap/Flatpak pour les applications desktop isolées
- Compiler depuis les sources = dernier recours
🔝 Retour à la table des matières
← Chapitre précédent | Chapitre suivant : Processus et tâches →