🐧 Gestionnaires de Paquets Linux

Guide complet des principaux gestionnaires de paquets Linux avec toutes les commandes essentielles.


📦 DPKG (Debian Package Manager)

Installation de Paquets

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Installer un paquet .deb local
sudo dpkg -i package.deb

# Installer plusieurs paquets
sudo dpkg -i *.deb

# Installation forcée (ignorer les dépendances)
sudo dpkg -i --force-depends package.deb

# Installation avec gestion des conflits
sudo dpkg -i --force-conflicts package.deb

Suppression de Paquets

1
2
3
4
5
6
7
8
9
# Supprimer un paquet (garde les fichiers de config)
sudo dpkg -r package_name

# Supprimer complètement (avec fichiers de config)
sudo dpkg -P package_name
sudo dpkg --purge package_name

# Supprimer plusieurs paquets
sudo dpkg -r package1 package2 package3

Recherche et Information

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Lister tous les paquets installés
dpkg -l
dpkg --list

# Rechercher un paquet spécifique
dpkg -l | grep package_name

# Afficher les détails d'un paquet
dpkg -s package_name
dpkg --status package_name

# Lister les fichiers d'un paquet installé
dpkg -L package_name
dpkg --listfiles package_name

# Trouver quel paquet contient un fichier
dpkg -S /path/to/file
dpkg --search /path/to/file

Vérification et Réparation

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Vérifier l'intégrité des paquets
sudo dpkg --verify package_name

# Vérifier tous les paquets
sudo dpkg -V

# Configurer les paquets non configurés
sudo dpkg --configure -a

# Réparer les dépendances cassées
sudo dpkg --configure -a && sudo apt-get -f install

Informations sur les Fichiers .deb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Afficher les infos d'un fichier .deb
dpkg -I package.deb
dpkg --info package.deb

# Lister le contenu d'un fichier .deb
dpkg -c package.deb
dpkg --contents package.deb

# Extraire un fichier .deb
dpkg -x package.deb /destination/path

# Extraire avec structure de contrôle
dpkg -X package.deb /destination/path

🚀 APT (Advanced Package Tool)

Gestion des Sources

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Mettre à jour la liste des paquets
sudo apt update

# Mettre à jour le système
sudo apt upgrade

# Mise à jour complète du système
sudo apt full-upgrade
sudo apt dist-upgrade

# Éditer les sources
sudo nano /etc/apt/sources.list

Installation de Paquets

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# Installer un 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

# Installer sans confirmation
sudo apt install -y package_name

# Installer avec recommandations
sudo apt install --install-recommends package_name

# Installer sans recommandations
sudo apt install --no-install-recommends package_name

# Réinstaller un paquet
sudo apt install --reinstall package_name

Suppression de Paquets

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# Supprimer un paquet
sudo apt remove package_name

# Supprimer avec fichiers de configuration
sudo apt purge package_name

# Supprimer les dépendances orphelines
sudo apt autoremove

# Supprimer avec autoremove
sudo apt remove --autoremove package_name

# Nettoyer le cache
sudo apt autoclean
sudo apt clean

Recherche et Information

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Rechercher un paquet
apt search keyword
apt-cache search keyword

# Afficher les informations d'un paquet
apt show package_name
apt-cache show package_name

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

# Lister les paquets disponibles
apt list --available

# Lister les mises à jour disponibles
apt list --upgradable

# Voir les dépendances
apt-cache depends package_name

# Voir les dépendances inverses
apt-cache rdepends package_name

Gestion des Verrous et Priorités

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Verrouiller un paquet
sudo apt-mark hold package_name

# Déverrouiller un paquet
sudo apt-mark unhold package_name

# Voir les paquets verrouillés
apt-mark showhold

# Marquer comme installé automatiquement
sudo apt-mark auto package_name

# Marquer comme installé manuellement
sudo apt-mark manual package_name

APT avancé

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Télécharger sans installer
apt download package_name

# Simulation d'installation
apt install -s package_name

# Installation avec recommandations minimales
sudo apt install --no-install-suggests package_name

# Forcer l'installation
sudo apt install -f

# Installer depuis un fichier .deb local
sudo apt install ./package.deb

🔴 RPM (RPM Package Manager)

Installation de Paquets

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# Installer un paquet RPM
sudo rpm -i package.rpm
sudo rpm --install package.rpm

# Installer avec verbose
sudo rpm -ivh package.rpm

# Installer en forçant
sudo rpm -i --force package.rpm

# Installer sans vérifier les dépendances
sudo rpm -i --nodeps package.rpm

# Mettre à jour un paquet
sudo rpm -U package.rpm
sudo rpm --upgrade package.rpm

# Mettre à jour seulement si déjà installé
sudo rpm -F package.rpm
sudo rpm --freshen package.rpm

Suppression de Paquets

1
2
3
4
5
6
7
8
9
# Supprimer un paquet
sudo rpm -e package_name
sudo rpm --erase package_name

# Supprimer sans vérifier les dépendances
sudo rpm -e --nodeps package_name

# Supprimer avec verbose
sudo rpm -evh package_name

Requêtes et Information

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Lister tous les paquets installés
rpm -qa
rpm --query --all

# Rechercher un paquet installé
rpm -q package_name
rpm -qa | grep pattern

# Informations détaillées sur un paquet
rpm -qi package_name
rpm --query --info package_name

# Lister les fichiers d'un paquet
rpm -ql package_name
rpm --query --list package_name

# Trouver quel paquet possède un fichier
rpm -qf /path/to/file
rpm --query --file /path/to/file

# Voir les dépendances d'un paquet
rpm -qR package_name
rpm --query --requires package_name

# Voir les paquets qui dépendent de ce paquet
rpm -q --whatrequires package_name

Vérification et Intégrité

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# Vérifier un paquet installé
rpm -V package_name
rpm --verify package_name

# Vérifier tous les paquets
rpm -Va

# Vérifier un fichier RPM avant installation
rpm -K package.rpm
rpm --checksig package.rpm

# Informations sur un fichier RPM
rpm -qip package.rpm

# Lister le contenu d'un fichier RPM
rpm -qlp package.rpm

RPM Database

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Reconstruire la base de données RPM
sudo rpm --rebuilddb

# Initialiser la base de données
sudo rpm --initdb

# Importer une clé GPG
sudo rpm --import /path/to/key

# Lister les clés GPG
rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'

⚡ DNF (Dandified YUM)

Gestion des Dépôts

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Mettre à jour les métadonnées des dépôts
sudo dnf update

# Mettre à jour le système complet
sudo dnf upgrade

# Lister les dépôts
dnf repolist
dnf repolist all

# Activer un dépôt
sudo dnf config-manager --enable repository_name

# Désactiver un dépôt
sudo dnf config-manager --disable repository_name

# Ajouter un dépôt
sudo dnf config-manager --add-repo http://repo.url

Installation de Paquets

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# Installer un paquet
sudo dnf install package_name

# Installer plusieurs paquets
sudo dnf install package1 package2

# Installer un groupe de paquets
sudo dnf group install "Group Name"
sudo dnf groupinstall "Group Name"

# Installer depuis un fichier RPM local
sudo dnf install ./package.rpm

# Installer sans confirmation
sudo dnf install -y package_name

# Réinstaller un paquet
sudo dnf reinstall package_name

# Downgrader un paquet
sudo dnf downgrade package_name

Suppression de Paquets

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Supprimer un paquet
sudo dnf remove package_name

# Supprimer avec dépendances orphelines
sudo dnf autoremove

# Supprimer un groupe
sudo dnf group remove "Group Name"

# Nettoyer le cache
sudo dnf clean all
sudo dnf clean packages
sudo dnf clean metadata

Recherche et Information

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Rechercher un paquet
dnf search keyword

# Afficher les informations d'un paquet
dnf info package_name

# Lister les paquets installés
dnf list installed

# Lister les paquets disponibles
dnf list available

# Lister les mises à jour disponibles
dnf list updates

# Voir l'historique des transactions
dnf history

# Annuler une transaction
sudo dnf history undo transaction_id

# Voir les dépendances
dnf deplist package_name

# Voir qui fournit un fichier
dnf provides /path/to/file
dnf whatprovides /path/to/file

Gestion des Groupes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Lister les groupes disponibles
dnf group list
dnf grouplist

# Informations sur un groupe
dnf group info "Group Name"
dnf groupinfo "Group Name"

# Installer un groupe
sudo dnf group install "Development Tools"

# Supprimer un groupe
sudo dnf group remove "Group Name"

DNF Avancé

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# Télécharger sans installer
dnf download package_name

# Vérifier les mises à jour disponibles
dnf check-update

# Marquer un paquet pour ne pas le mettre à jour
sudo dnf versionlock add package_name

# Voir les paquets verrouillés
dnf versionlock list

# Déverrouiller un paquet
sudo dnf versionlock delete package_name

# Simulation d'opération
dnf install --assumeno package_name

🏔️ APK (Alpine Package Keeper)

Gestion des Dépôts

1
2
3
4
5
6
7
8
# Mettre à jour l'index des paquets
apk update

# Lister les dépôts
cat /etc/apk/repositories

# Ajouter un dépôt
echo "http://dl-cdn.alpinelinux.org/alpine/v3.18/main" >> /etc/apk/repositories

Installation de Paquets

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# Installer un paquet
apk add package_name

# Installer plusieurs paquets
apk add package1 package2

# Installer et mettre à jour l'index
apk update && apk add package_name

# Installer depuis un fichier .apk local
apk add --allow-untrusted package.apk

# Installer sans cache
apk add --no-cache package_name

# Installer version spécifique
apk add package_name=version

# Installation avec dépendances virtuelles
apk add --virtual .build-deps gcc musl-dev

Suppression de Paquets

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Supprimer un paquet
apk del package_name

# Supprimer des dépendances virtuelles
apk del .build-deps

# Nettoyer le cache
apk cache clean

# Supprimer le cache complètement
rm -rf /var/cache/apk/*

Recherche et Information

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Rechercher un paquet
apk search package_name
apk search -v package_name  # verbose

# Rechercher avec expression régulière
apk search -x 'package.*'

# Informations sur un paquet
apk info package_name

# Informations détaillées
apk info -d package_name

# Lister les paquets installés
apk list --installed
apk info

# Lister tous les paquets disponibles
apk list --available

# Voir les dépendances
apk info -R package_name

# Voir les dépendances inverses
apk info -r package_name

# Lister les fichiers d'un paquet
apk info -L package_name

# Trouver quel paquet contient un fichier
apk info --who-owns /path/to/file

Mise à jour du Système

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# Mettre à jour tous les paquets
apk upgrade

# Mettre à jour avec mise à jour de l'index
apk update && apk upgrade

# Simulation de mise à jour
apk upgrade -s

# Mise à jour disponible
apk version

# Mise à jour avec cache
apk cache download
apk upgrade --update-cache

Gestion Avancée APK

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# Vérifier l'intégrité des paquets
apk verify

# Fixer les paquets cassés
apk fix

# Auditer le système
apk audit

# Voir les statistiques
apk stats

# Mode verbose pour debugging
apk -v add package_name

# Forcer l'installation
apk add --force package_name

# Installation avec priorité
apk add --repository http://repo.url package_name

🔄 Comparaison des Commandes

ActionDPKGAPTRPMDNFAPK
Installerdpkg -i pkg.debapt install pkgrpm -i pkg.rpmdnf install pkgapk add pkg
Supprimerdpkg -r pkgapt remove pkgrpm -e pkgdnf remove pkgapk del pkg
Mettre à jourN/Aapt update && apt upgradeN/Adnf upgradeapk update && apk upgrade
Rechercherdpkg -l | grepapt searchrpm -qa | grepdnf searchapk search
Info paquetdpkg -s pkgapt show pkgrpm -qi pkgdnf info pkgapk info pkg
Lister fichiersdpkg -L pkgN/Arpm -ql pkgdnf repoquery -l pkgapk info -L pkg
Propriétaire fichierdpkg -S fileapt-file search filerpm -qf filednf provides fileapk info --who-owns file

🛠️ Conseils et Bonnes Pratiques

Sécurité

  • Toujours vérifier les signatures GPG des paquets
  • Utiliser uniquement des dépôts officiels ou de confiance
  • Faire des sauvegardes avant les mises à jour majeures
  • Vérifier l’intégrité des paquets après installation

Performance

  • Nettoyer régulièrement les caches des gestionnaires de paquets
  • Utiliser --no-cache avec APK pour les conteneurs
  • Configurer des mirrors locaux pour de meilleures performances

Debugging

  • Utiliser les options -v ou --verbose pour plus d’informations
  • Consulter les logs dans /var/log/
  • Utiliser les options de simulation avant les vraies opérations

Automatisation

  • Utiliser les options -y ou --assume-yes pour l’automatisation
  • Créer des scripts de déploiement avec gestion d’erreurs
  • Utiliser les verrous de paquets pour maintenir des versions spécifiques

📚 Ressources Utiles


💡 Astuce : Créez des alias pour vos commandes les plus utilisées dans votre .bashrc ou .zshrc !