Aller au contenu
Administration Linux medium

Maîtrise le gestionnaire de paquets Pacman

12 min de lecture

Pacman est le gestionnaire de paquets par défaut d’Arch Linux. Il permet d’installer, mettre à jour, supprimer et gérer les paquets logiciels en ligne de commande. Ce qui le rend unique ? Sa vitesse, sa simplicité, et sa capacité à gérer les dépendances automatiquement. C’est un outil incontournable si tu utilises Arch ou une de ses dérivées comme Manjaro ou EndeavourOS. Grâce à lui, tu peux garder ton système à jour en une seule commande.

Pour bien comprendre comment fonctionne Pacman, il faut se familiariser avec ses commandes de base. Voici ce que j’utilise au quotidien pour gérer mes paquets sur Arch Linux.

Tu veux installer un logiciel comme htop ? Facile :

Fenêtre de terminal
sudo pacman -S htop

La commande -S signifie synchronize. Elle permet d’installer un paquet depuis les dépôts officiels. Pacman télécharge alors les fichiers nécessaires et résout automatiquement les dépendances.

Pas sûr du nom exact du paquet ? Utilise :

Fenêtre de terminal
pacman -Ss nom_du_paquet

Cette commande interroge la base de données des dépôts pour retrouver les paquets disponibles. Par exemple, pacman -Ss firefox te montrera tous les paquets liés à Firefox.

Garder son système à jour est essentiel sur Arch :

Fenêtre de terminal
sudo pacman -Syu
  • -S: synchronize
  • -y: rafraîchit la base de données locale
  • -u: met à jour tous les paquets

C’est l’équivalent de apt update && apt upgrade sur Debian. Une seule commande suffit ici pour tout faire.

Tu peux aussi mettre à jour un paquet en particulier :

Fenêtre de terminal
sudo pacman -S nom_du_paquet

S’il est déjà installé, Pacman va le mettre à jour à la dernière version disponible.

Garder un système propre, c’est aussi supprimer ce dont on n’a plus besoin. Avec Pacman, tout est prévu pour désinstaller efficacement et nettoyer les fichiers inutiles.

Pour enlever un paquet sans toucher aux dépendances installées avec lui :

Fenêtre de terminal
sudo pacman -R nom_du_paquet

Mais attention : cela peut laisser des fichiers ou dépendances orphelines.

Tu veux faire le ménage plus en profondeur ? Utilise :

Fenêtre de terminal
sudo pacman -Rs nom_du_paquet

Le -s signifie que Pacman va aussi supprimer les dépendances installées uniquement pour ce paquet. C’est très pratique pour éviter de surcharger ton système.

Encore plus strict :

Fenêtre de terminal
sudo pacman -Rns nom_du_paquet

L’option -n supprime aussi les fichiers de configuration dans /etc. Attention si tu veux garder une trace de ta config pour réinstaller plus tard.

À chaque installation, Pacman garde une copie des paquets téléchargés dans /var/cache/pacman/pkg/. Ça peut vite prendre de la place.

Pour supprimer les anciennes versions des paquets installés :

Fenêtre de terminal
sudo pacman -Sc

Et pour tout supprimer, même les paquets encore installés (à utiliser avec précaution) :

Fenêtre de terminal
sudo pacman -Scc

Pacman te demandera confirmation avant d’agir. Pratique pour libérer de l’espace disque.

Un paquet est orphelin quand il n’est plus requis par aucun autre. Pour les identifier :

Fenêtre de terminal
pacman -Qdt

Et pour les supprimer :

Fenêtre de terminal
sudo pacman -Rns $(pacman -Qdtq)

Cela supprime proprement tous les paquets orphelins et leurs fichiers de configuration.

Si tu veux aller plus loin avec Pacman, il est possible de personnaliser son comportement via son fichier de configuration : /etc/pacman.conf. C’est ici que je modifie certains paramètres pour adapter Pacman à mes besoins.

Tu peux ouvrir ce fichier avec ton éditeur préféré :

Fenêtre de terminal
sudo nano /etc/pacman.conf

Voici quelques sections utiles :

  • [options] : paramètres globaux
  • [core], [extra], [community] : dépôts officiels
  • [multilib] : pour les bibliothèques 32 bits
  • Tu peux aussi ajouter d’autres dépôts personnalisés.

Sous [options], je recommande d’ajouter ou de décommenter :

Color
ILoveCandy
VerbosePkgLists
  • Color : pour une sortie colorée en ligne de commande
  • ILoveCandy : pour un petit easter egg sympa
  • VerbosePkgLists : pour voir plus de détails lors des mises à jour

Tu peux installer des paquets depuis un dépôt privé ou non officiel :

[mon_depot]
SigLevel = Optional TrustAll
Server = https://monserveur.org/repo/$arch

Place-le en fin de fichier. Pacman lira ce dépôt après les officiels.

Par défaut, Pacman vérifie les signatures GPG des paquets. C’est une protection contre les paquets malveillants. Si tu ajoutes un dépôt non officiel, il faudra probablement ajouter sa clé publique :

Fenêtre de terminal
sudo pacman-key --recv-keys ABC123456789
sudo pacman-key --lsign-key ABC123456789

Cela ajoute la clé à ta base de confiance.

Quand on utilise Pacman tous les jours, on développe vite quelques réflexes pour gagner du temps et éviter les erreurs. Voici mes astuces perso pour tirer le meilleur parti du gestionnaire de paquets d’Arch Linux.

Avant une grosse mise à jour ou un changement critique, je préfère sauvegarder la liste des paquets installés :

Fenêtre de terminal
pacman -Qqe > packages.txt

Cela permet de réinstaller rapidement tous les paquets plus tard avec :

Fenêtre de terminal
sudo pacman -S --needed - < packages.txt

Très utile après une réinstallation système.

Pacman garde par défaut toutes les versions précédentes des paquets. Pour éviter que le dossier /var/cache/pacman/pkg/ devienne trop gros, je fais le ménage avec paccache :

Fenêtre de terminal
sudo paccache -r

Cela garde uniquement les trois dernières versions de chaque paquet.

Tu veux tout supprimer sauf la dernière ?

Fenêtre de terminal
sudo paccache -rk1

Et pour vider tout le cache (danger !) :

Fenêtre de terminal
sudo paccache -r -k0

Quand une mise à jour semble risquée (ex : beaucoup de bibliothèques critiques), je fais un test de simulation :

Fenêtre de terminal
sudo pacman -Syu --print

Ou pour un paquet en particulier :

Fenêtre de terminal
sudo pacman -S --print nom_du_paquet

Cela affiche ce qui serait installé, mis à jour ou supprimé, sans rien exécuter.

  • Supprime régulièrement les orphelins :

    Fenêtre de terminal
    sudo pacman -Rns $(pacman -Qdtq)
  • Nettoie le cache au moins une fois par mois :

    Fenêtre de terminal
    sudo paccache -r
  • Ne jamais forcer une installation avec --overwrite sans savoir ce que tu fais.

Pour accélérer les téléchargements, je mets à jour la liste des miroirs les plus rapides :

Fenêtre de terminal
sudo pacman -S reflector
sudo reflector --country France --age 12 --sort rate --save /etc/pacman.d/mirrorlist

Même si Pacman est un outil robuste, il arrive parfois de rencontrer des erreurs lors des mises à jour ou installations. Voici les problèmes les plus fréquents et comment je les résous efficacement.

Conflits de fichiers : “file exists in filesystem”

Section intitulée « Conflits de fichiers : “file exists in filesystem” »

Tu vois ce message ?

Fenêtre de terminal
erreur: fichier déjà présent dans le système de fichiers

Cela signifie qu’un fichier est déjà là alors que Pacman veut l’installer. Dans la plupart des cas, ce fichier a été ajouté manuellement ou laissé par un paquet supprimé.

Solution : vérifier s’il appartient à un autre paquet :

Fenêtre de terminal
pacman -Qo /chemin/du/fichier

S’il n’appartient à rien, je le supprime avec prudence :

Fenêtre de terminal
sudo rm /chemin/du/fichier

Puis je relance l’installation.

Pacman gère bien les dépendances, mais il peut arriver que des paquets soient en conflit après une mise à jour.

Fenêtre de terminal
erreur: la transaction a échoué (conflit de fichiers)

Dans ce cas, je consulte les dépendances en jeu avec :

Fenêtre de terminal
pacman -Qi nom_du_paquet

Puis je supprime et réinstalle le paquet problématique :

Fenêtre de terminal
sudo pacman -Rns nom_du_paquet
sudo pacman -S nom_du_paquet

Parfois, la base de données locale peut être corrompue :

Fenêtre de terminal
erreur: base de données corrompue (nom manquant)

Je régénère alors les fichiers :

Fenêtre de terminal
sudo pacman -Syy

Puis je supprime les fichiers défectueux manuellement si besoin :

Fenêtre de terminal
sudo rm /var/lib/pacman/local/paquet-*

À utiliser avec beaucoup de précaution.

Lors d’une mise à jour complète, si le système bloque, je tente :

Fenêtre de terminal
sudo pacman -Syu --overwrite '*'

Mais uniquement après avoir bien identifié l’origine du blocage. C’est une commande puissante qui peut résoudre un conflit temporaire, mais elle ne doit pas devenir une habitude.

Pour mieux comprendre ce qui s’est passé, je consulte le fichier log :

Fenêtre de terminal
less /var/log/pacman.log

Il me permet de retracer toutes les installations, mises à jour et erreurs.

L’AUR (Arch User Repository) est une des grandes forces de l’univers Arch. C’est une immense collection de paquets maintenus par la communauté. On y trouve des logiciels non disponibles dans les dépôts officiels, comme Google Chrome, Spotify ou des outils de développement très récents.

Mais attention : les paquets AUR sont compilés localement à partir de scripts PKGBUILD. Il faut donc les utiliser avec un minimum de précaution.

L’AUR est un dépôt communautaire où chaque utilisateur peut proposer des PKGBUILD : des scripts qui indiquent comment construire un paquet Arch.

Tu peux parcourir les paquets sur le site officiel : aur.archlinux.org

Pour interagir facilement avec l’AUR, je recommande d’utiliser un AUR helper. Le plus populaire est yay :

Fenêtre de terminal
sudo pacman -S git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Tu peux ensuite installer des paquets AUR comme s’ils étaient officiels :

Fenêtre de terminal
yay -S google-chrome

Autres helpers connus : paru, trizen, pikaur.

Avec yay, tu peux :

  • Rechercher un paquet :

    Fenêtre de terminal
    yay -Ss nom_du_paquet
  • Voir les détails :

    Fenêtre de terminal
    yay -Si nom_du_paquet
  • Mettre à jour tout le système (y compris l’AUR) :

    Fenêtre de terminal
    yay -Syu

Tu veux distribuer ton propre outil via l’AUR ? Il faut créer un PKGBUILD avec au minimum :

  • pkgname : nom du paquet
  • pkgver : version
  • source : lien vers l’archive ou le repo Git
  • build() et package() : fonctions pour construire et empaqueter

Exemple de squelette de PKGBUILD :

Fenêtre de terminal
pkgname=monoutillage
pkgver=1.0
pkgrel=1
arch=('any')
source=("https://monurl.com/source.tar.gz")
build() {
cd "$srcdir/$pkgname-$pkgver"
}
package() {
cd "$srcdir/$pkgname-$pkgver"
install -Dm755 monoutillage "$pkgdir/usr/bin/monoutillage"
}

Tu peux tester ton script avec :

Fenêtre de terminal
makepkg -si

Avec quelques commandes bien maîtrisées et les bons réflexes, tu peux gérer ton système efficacement, que ce soit pour installer de nouveaux logiciels, maintenir un système propre ou explorer les trésors de l’AUR. Une fois apprivoisé, Pacman devient un allié fidèle pour garder le contrôle total sur ton environnement Linux.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.