Aller au contenu principal

Gestion des packages


Table des matières

  1. Qu'est-ce qu'un gestionnaire de packages ?
  2. APT (Debian/Ubuntu)
  3. YUM/DNF (RedHat/CentOS/Fedora)
  4. Snap et Flatpak
  5. Compiler depuis les sources
  6. 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

DistributionGestionnaireFormat
Debian/UbuntuAPT (dpkg).deb
RedHat/CentOS/FedoraYUM/DNF (rpm).rpm
Arch Linuxpacman.pkg.tar.zst
Alpineapk.apk
UniverselSnap, Flatpak-

🔝 Retour à la table des matières



2 - APT (Debian/Ubuntu)

APT = Advanced Package Tool

Commandes essentielles

CommandeDescription
apt updateMettre à jour la liste des packages
apt upgradeMettre à jour les packages installés
apt installInstaller un package
apt removeSupprimer un package
apt purgeSupprimer package + configuration
apt searchRechercher un package
apt showInformations sur un package
apt autoremoveSupprimer 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 -
astuce

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

APTDNF/YUMDescription
apt updatednf check-updateVérifier les mises à jour
apt upgradednf upgradeMettre à jour
apt installdnf installInstaller
apt removednf removeSupprimer
apt searchdnf searchRechercher
apt autoremovednf autoremoveNettoyer

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

ActionAPT (Debian/Ubuntu)DNF (Fedora/RHEL)
Mise à jour listeapt updatednf check-update
Mise à jour systèmeapt upgradednf upgrade
Installerapt install pkgdnf install pkg
Supprimerapt remove pkgdnf remove pkg
Rechercherapt search termdnf search term
Infoapt show pkgdnf info pkg
Nettoyerapt autoremovednf 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

AspectAPTSnapFlatpak
IsolationNonOuiOui
Mises à jour autoNonOuiOptionnel
TaillePetiteGrandeGrande
UsageSystèmeApps desktopApps desktop
RollbackNonOuiOui
remarque

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
attention

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 update avant apt install
  • apt upgrade pour mettre à jour le système
  • apt remove vs apt purge (conservation des configs)
  • apt autoremove pour 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 →