Gestion des packages sous Arch Linux avec pacman
Gestion des packages Arch Linux avec pacman

Gestion des packages sous Arch Linux avec pacman

L’une des particularité d’Arch Linux est d’utiliser une système de packages binaires simples et un système de construction de paquets facile à utiliser. pacman est quant à lui le gestionnaire de packages de la distribution qui permet de gérer aussi bien les packages de dépôts officiels que ceux des constructions d’utilisateurs.

pacman permet de maintenir de système à jour en se synchronisant sur un serveur de référence, il permet bien sûr aussi d’installer et supprimer des packages en s’occupant de la gestion des dépendances.

Pour l’article je me base sur une installation fraîche d’un système Arch Linux sans interface graphique et avec l’utilitaire sudo installé.

Utilisation de base de pacman

Contrairement a ses homologues les plus classiques comme dnf ou apt, pacman propose une syntaxe moins verbeuse composées d’options courtes (-S, -R, -Q, -F, …) ce qui peut au premier abord être moins intuitif mais se révèle extrêmement pratique une fois les bases acquises.

Option courteOption longueDescription
-h–helpAffiche l’aide
-V–versionAffiche la version
-F–filesRecherche par nom de fichier
-Q–queryInterrogation de la base de donnée locale des packages
-R–removeSuppression de packages
-S–syncSynchronisation (installation, mise à jour, … ) des packages
-T–deptestVérification des dépendances
-U–upgradeInstallation ou mise à jour des packages et des dépendances

Mise à jour de la liste des packages

Comme toujours, il vaut toujours mieux commencer par une mise à jour de la liste des packages disponibles.

Bash
sudo pacman -Sy

Recherche de packages

Avant d’installer un package il faut en connaitre le nom. pacman nous permet de chercher un package en fonction de son nom ou même en fonction d’un fichier qu’il contient.

Recherche d’un package par son nom
sudo pacman -Ss <package>

Chose très intéressante, la recherche de package supporte les expressions régulières et nous permet donc de faire une recherche extrêmement précise. Par exemple si je veux vérifier si il existe un package pour l’utilitaire tree, je peux utiliser la commande pacman -Ss ^tree$.

Si je cherche un package sur base d’un nom de fichier (par exemple le nom de l’exécutable, je peux utiliser la commande ci-dessous.

Recherche d’un package par nom de fichier qu’il contient
sudo pacman -Fy <fichier>

Installation de packages

Une fois le package identifié, il suffit de l’installer…

Installer un ou plusieurs packages
sudo pacman -S <package_1> [package_2 ... package_n]

Et comme souvent nous pouvons aussi bien installer un seul package qu’une série de packages en une seule commande.

Suppression de packages

pacman nous permet de choisir entre le fait de supprimer les dépendances du package ou de les laisser inbtactes.

Suppression d’un package sans toucher aux dépendances
sudo pacman -R <package>

Pour supprimer les dépendances il faut rajouter l’option -s.

Suppression d’un package et de ses dépendances
sudo pacman -Rs <package>

Mise à jour des packages

pacman permet en une seule commande de mettre à jour l’ensemble du système et de ses packages.

Mise à jour de l’ensemble des packages
sudo pacman -Syu

Les trois options utilisées ici son:

  • -S : Synchronisation
  • -y : Mise à jour de la cache locale
  • -u : Mise à jour du système

Nous pouvons bien évidemment aussi mettre à jour un package précis (ce qui l’installe si ce n’est pas déjà le cas).

Mise à jour d’un package et de ses dépendances
sudo pacman -Syu <package>

Recherche parmi les packages installés

L’option -Q nous permet de rechercher dans la base de données des packages installés.

Recherche parmi les packages installés
sudo pacman -Qs <package>

Mise en pratique

Partant de mon installation toute fraîche sans interface graphique, je veux:

  • Mettre à jour le système dans on ensemble
  • Installer les utilitaires tree et duf sachant que je sais qu’il existe un package pour tree mais je n’en suis pas sur pour duf, je devrai donc essayer de voir si on package contient l’exécutable.
Mise à jour du système
[steve@just-sudo-it ~]$ sudo pacman -Syu
[sudo] Mot de passe de steve :
:: Synchronisation des bases de données de paquets…
 core est à jour
 extra est à jour
 multilib est à jour
:: Début de la mise à jour complète du système…
 il n’y a rien à faire
[steve@just-sudo-it ~]$
Installation du package tree dont je connais le nom
[steve@just-sudo-it ~]$ sudo pacman -S tree
résolution des dépendances…
recherche des conflits entre paquets…

Paquets (1) tree-2.1.1-1

Taille totale installée :  0,09 MiB

:: Procéder à l’installation ? [O/n] o
(1/1) vérification des clés dans le trousseau                            [########################################] 100%
(1/1) vérification de l’intégrité des paquets                            [########################################] 100%
(1/1) chargement des fichiers des paquets                                [########################################] 100%
(1/1) analyse des conflits entre fichiers                                [########################################] 100%
(1/1) vérification de l’espace disque disponible                         [########################################] 100%
:: Traitement des changements du paquet…
(1/1) installation de tree                                               [########################################] 100%
:: Exécution des crochets (« hooks ») de post-transaction…
(1/1) Arming ConditionNeedsUpdate...
[steve@just-sudo-it ~]$
Recherche du package contenant l’exécutable duf
[steve@just-sudo-it ~]$ sudo pacman -Fy /usr/bin/duf
:: Synchronisation des bases de données de paquets…
 core est à jour
 extra est à jour
 multilib est à jour
usr/bin/duf appartient à extra/duf 0.8.1-2
[steve@just-sudo-it ~]$
Installation du package duf
[steve@just-sudo-it ~]$ sudo pacman -S duf
avertissement : duf-0.8.1-2 est à jour -- réinstallation
résolution des dépendances…
recherche des conflits entre paquets…

Paquets (1) duf-0.8.1-2

Taille totale installée :      2,22 MiB
Taille de mise à jour nette :  0,00 MiB

:: Procéder à l’installation ? [O/n] o
(1/1) vérification des clés dans le trousseau                            [########################################] 100%
(1/1) vérification de l’intégrité des paquets                            [########################################] 100%
(1/1) chargement des fichiers des paquets                                [########################################] 100%
(1/1) analyse des conflits entre fichiers                                [########################################] 100%
(1/1) vérification de l’espace disque disponible                         [########################################] 100%
:: Traitement des changements du paquet…
(1/1) réinstallation duf                                                 [########################################] 100%
:: Exécution des crochets (« hooks ») de post-transaction…
(1/1) Arming ConditionNeedsUpdate...
[steve@just-sudo-it ~]$

Conclusion

Bien qu’il faille un petit temps d’adaptation lorsqu’on vient d’autres distributions, pacman se révèle extrêmement efficace. Sa capacité à fournir des informations sur base d’expressions régulières, voire même d’aller chercher en fonction d’un fichier contenu dans un package s’avère être extrêmement efficace quand il s’agit de trouver notre bonheur dans l’immensité des packages disponibles.

0 Comments on “Gestion des packages sous Arch Linux avec pacman

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.