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 courte | Option longue | Description |
---|---|---|
-h | –help | Affiche l’aide |
-V | –version | Affiche la version |
-F | –files | Recherche par nom de fichier |
-Q | –query | Interrogation de la base de donnée locale des packages |
-R | –remove | Suppression de packages |
-S | –sync | Synchronisation (installation, mise à jour, … ) des packages |
-T | –deptest | Vérification des dépendances |
-U | –upgrade | Installation 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.
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.
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.
sudo pacman -Fy <fichier>
Installation de packages
Une fois le package identifié, il suffit de l’installer…
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.
sudo pacman -R <package>
Pour supprimer les dépendances il faut rajouter l’option -s
.
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.
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).
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.
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
etduf
sachant que je sais qu’il existe un package pourtree
mais je n’en suis pas sur pourduf
, je devrai donc essayer de voir si on package contient l’exécutable.
[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 ~]$
[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 ~]$
[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 ~]$
[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”