Pacman

De ArchwikiFR

Sommaire

Présentation de pacman

pacman est le gestionnaire de paquets d'Archlinux. Il combine un ensemble d'outils binaires avec un système relativement simple pour construire des paquets. (cf makepkg et ABS). Le but étant de facilement gérer les paquets, qu'ils proviennent des dépôts officiels ou qu'ils soient compilés par l'utilisateur.

pacman permet de garder votre système à jour en synchronisant la liste des paquets depuis un serveur puis de télécharger/installer les nouveaux paquets, ainsi que leur dépendances, avec une simple commande.

Configuration

pacman se configure à l'aide du fichier /etc/pacman.conf (cf. page man: pacman.conf(5)).

Options globales

Ces options se configurent sous la section [options], quelques exemples :

  • Architecture : si elle est définie, pacman n'installera que les paquets de cette architecture. Elle peut prendre la valeur auto (l'architecture sera définie par un appel à uname -m ). Elle permet aussi l'utilisation de la variable $arch dans l'URI d'un dépôt.
  • IgnorePkg : indique à pacman les paquets à ne pas mettre à jour.
  • IgnoreGroup : indique à pacman les groupes à ne pas mettre à jour.
  • UseDelta : cette option ne prend pas de paramètre et permet d'indiquer à pacman de télécharger les deltas de paquets s'ils sont disponibles. (cf. Utilisation des deltas)
  • SigLevel : Indique à pacman comment gérer les signatures : pacman-key
  • Color : la sortie de pacman en console sera colorisée.

Dépôts

La syntaxe est simple :

[nom_du_depôt]
Server=miroir1_du_depôt
Server=miroir2_du_depôt
Note: En ce qui concerne l'url indiquée, pacman remplace automatiquement $repo par le nom du dépôt et $arch par l'architecture configurée.
Note: La directive Include permet d'inclure un autre fichier à la configuration, en pratique, le contenu du fichier cible remplace la ligne de la directive.

cf. Détails des dépôts.

Utilisation

Note: Étant donné qu'Archlinux est un rolling release, la mise à jour du système peut nécessiter une action manuelle contrairement aux distributions à release régulières, il est donc important de suivre certaines règles de bases :
  • lire les nouvelles sur la page d'accueil, les mises à jour nécessitant une action particulière font généralement l'objet d'un article.
  • lire la sortie de pacman (qui est gardée dans le log, /var/log/pacman.log)
  • traiter les fichiers de configuration (.pacnew, .pacsave, .pacorig) lorsque nécessaire
  • savoir reconnaître les paquets critiques et selon les compétences, attendre peut-être un minimum de temps avant de faire la mise à jour de ces paquets. (Le temps que d'autres s'y cassent les dents :p)

Pour une description complète, merci de vous référer à la page man : pacman(8). Certaines options sont à prendre avec beaucoup de précaution, consultez ces quelques conseils pour utiliser pacman au mieux.

Voici quelques exemples d'opérations :

Synchronisation de la base de paquets

Cette opération met à jour la liste des paquets disponibles sur les miroirs :

pacman -Sy

Installation de paquets

Installation d'une liste de paquets :

pacman -S paquet_1 paquet_2

Si le paquet existe sous plusieurs dépôts, on peut éventuellement en préciser un :

pacman -S extra/paquet

Si vous avez l'archive d'un paquet sur votre disque :

pacman -U archive_du_paquet

Pour l'installation d'une liste de paquets depuis un fichier texte (un paquet par ligne) :

pacman -S < pkglist.txt

Mise à jour des paquets

Mise à jour suite à une synchronisation faite précédemment :

pacman -Su

Synchronisation puis, mise à jour :

pacman -Syu

Pour installer un nouveau paquet tout en mettant à jour le système :

pacman -Syu paquet_1

Suppression de paquets

pacman -R paquet_1

Pour garder un système propre, il faut aussi supprimer les dépendances qui ne sont plus requises par aucun paquet :

pacman -Rs paquet_1

Par défaut, les fichiers de configuration modifiés sont sauvegardés avec l'extension .pacsave. Pour ne pas les conserver :

pacman -Rsn paquet_1
Note: pacman ne touche pas aux répertoires personnels, c'est à l'utilisateur de s'occuper de tout fichier de configuration qui s'y trouverait.

Recherche

Pour avoir une aide rapide :

pacman -Q --help
pacman -S --help
pacman -R --help

Recherche d'un paquet parmi ceux installés :

pacman -Qs paquet

Recherche d'un paquet dans les dépôts :

pacman -Ss paquet

pacman peut effectuer une recherche avec des expressions régulières :

$ pacman -Ss gn.me win.*manager
extra/metacity 2.30.1-1 (gnome)
    A window manager for GNOME2
extra/xfwm4 4.6.2-1 (xfce4)
    Xfce window manager, compatible with Gnome, Gnome2, KDE2, and KDE3

Informations complètes sur un paquet installé (par exemple pour vérifier si certaines des dépendances optionnelles peuvent vous apporter des fonctionnalités supplémentaires):

pacman -Qi paquet

ou non:

pacman -Si paquet
Astuce: avec -Qii, vous pouvez connaître les éventuels fichiers de sauvegarde d'un paquet et leur état.

Liste des fichiers d'un paquet installé :

pacman -Ql paquet_1

Savoir à quel paquet appartient l'un des fichiers du système:

pacman -Qo /chemin/vers/le/fichier
Astuce: pkgfile permet de rechercher un fichier dans les paquets non installés, ou de lister les fichiers d'un paquet non installé avec l'option -l.

Liste des paquets n'appartenant à aucun dépôt configuré dans pacman.conf :

pacman -Qm

Liste des paquets (dépendances) n'étant plus requis par le système (le paquet qui a causé leur installation n'est plus présent) :

pacman -Qdt
Attention: -Qdt liste les paquets non installés explicitement et dont aucun autre paquet ne dépend, mais cela ne veut pas forcément dire que vous ne les utilisez pas. Un exemple, vous installez un paquet qui dépend de zip, ce dernier s'installe, un jour, il n'en dépend plus, zip deviendra non requis par le système, mais vous l'utilisez peut-être quand même. (cf Modification de la base de données ci-dessous)

Rétrograder des paquets

Il est parfois nécessaire de revenir temporairement à la version précédente d'un paquet (régression, bug), différents moyens existent: Downgrade.

Modification de la base de données

Vous pouvez modifier certains éléments de la base de données des paquets installés, notamment la raison d'installation d'un paquet (installés en tant que dépendances ou explicitement) :

pacman -D --asexplicit paquet_1 paquet_2
pacman -D --asdeps paquet_1 paquet_2

En vrac

  • Nettoyage des paquets non installés du cache:
pacman -Sc
  • Téléchargement des paquets seulement:
pacman -Sw paquet_1 paquet_2
  • Vérifier qu'il ne manque pas de fichiers installés sur l'ensemble des paquets:
pacman -Qqk

Une astuce totalement inutile et (peut-être) indispensable…

Il existe une petite astuce avec Pacman que — j'en suis sûr — vous allez vous empresser de tester. Éditez le fichier "/etc/pacman.conf" et ajoutez l'option "ILoveCandy" dans la rubrique en dessous de "[options]" :

[options]
ILoveCandy

Vous obtiendrez par la suite une sortie de Pacman similaire au jeu du même nom lorsque vous mettrez votre système à jour.

Outils personnels
Autres langues