PACMAN(8) Manuel de Pacman PACMAN(8)

pacman - Utilitaire de gestion de paquetage

pacman <operation> [options] [targets]

Pacman is a package management utility that tracks installed packages on a Linux system. It features dependency support, package groups, install and uninstall scripts, and the ability to sync your local machine with a remote repository to automatically upgrade packages. Pacman packages are a zipped tar format.

Depuis la version 3.0.0, pacman est une interface à libalpm(3), la bibliothèque du “Gestionnaire de paquetage Arch Linux”. Cette bibliothèque permet d'écrire d'autres interfaces (par exemple, une interface graphique).

L'appel de pacman doit préciser la nature de l'opération désirée et la cible, généralement un paquetage ou un fichier, mais parfois aussi une URL ou une chaîne de caractère à rechercher. Les cibles sont passées comme arguments de la ligne de commande. On peut aussi donner comme argument un simple tiret (-) : les cibles seront alors lues sur l'entrée standard stdin, ce qui peut présenter un intérêt si l'entrée standard ne pointe pas vers le terminal mais vers la redirection d'une autre commande.

-D, --database

Opère sur la base de données des paquetages, par exemple pour modifier dans la base de données de pacman certains attributs des paquetages installés, ou pour vérifier la compatbilité interne des bases de données des paquetages. Voyez les options afférentes ci-après.

-Q, --query

Query the package database. This operation allows you to view installed packages and their files, as well as meta-information about individual packages (dependencies, conflicts, install date, build date, size). This can be run against the local package database or can be used on individual package files. In the first case, if no package names are provided in the command line, all installed packages will be queried. Additionally, various filters can be applied on the package list. See Query Options below.

-R, --remove

Supprime des paquetages de votre système. On peut aussi marquer des groupes à supprimer : dans ce cas tous les paquetages du groupe seront supprimés. Les fichiers appartenant aux paquetages précisés seront supprimés et la base de donnée sera mise à jour. La plupart des fichiers de configuration seront sauvegardés avec l'extension .pacsave sauf si l'option --nosave est saisie. Voir REMOVE OPTIONS ci-dessous.

-S, --sync

Synchronize packages. Packages are installed directly from the remote repositories, including all dependencies required to run the packages. For example, pacman -S qt will download and install qt and all the packages it depends on. If a package name exists in more than one repository, the repository can be explicitly specified to clarify the package to install: pacman -S testing/qt. You can also specify version requirements: pacman -S "bash>=3.2". Quotes are needed, otherwise the shell interprets ">" as redirection to a file.

Outre des paquetages, on peut spécifier des groupes de paquetages. Par exemple, si gnome est le nom d'un groupe de paquetages déterminé, pacman -S gnome va ouvrir une boucle de saisie pour vous permettre de choisir les paquetages à installer à partir d'une liste numérotée. Le choix de paquetages se fait en donnant une liste de numéros séparés par des espaces ou des virgules. On peut même donner une suite de numéros consécutifs de paquetages en donnant le premier et le dernier numéro de paquetage séparés par un tiret (-). On peut exclure un paquetage ou une séquence de paquetage en faisant précéder le numéro ou l'intervalle de numéros d'un accent circonflexe (^).

Packages that provide other packages are also handled. For example, pacman -S foo will first look for a foo package. If foo is not found, packages that provide the same functionality as foo will be searched for. If any package is found, it will be installed. A selection prompt is provided if multiple packages providing foo are found.

Vous pouvez aussi utiliser pacman -Su pour mettre à jour tous les paquetages périmés. Voir les options Sync ci-dessous. Lors d'une mise à jour, pacman compare les versions pour déterminer quels paquetages ont besoin d'être mis à jour. Cette opération se déroule comme ceci :

Alphanumérique:
  1.0a < 1.0b < 1.0beta < 1.0p < 1.0pre < 1.0rc < 1.0 < 1.0.a < 1.0.1
Numérique:
  1 < 1.0 < 1.1 < 1.1.1 < 1.2 < 2.0 < 3.0.0

De plus, il est possible d'intégrer une valeur date au nom de version : celle-ci sera prioritaire pour les comparaisons de version, à moins bien sûr que deux valeurs de date ne soient égales. Le format de date est version-rel. Par exemple 2:1.0-1 est toujours plus récent que 1:3.6-1.

-T, --deptest

Check dependencies; this is useful in scripts such as makepkg to check installed packages. This operation will check each dependency specified and return a list of dependencies that are not currently satisfied on the system. This operation accepts no other options. Example usage: pacman -T qt "bash>=3.2".

-U, --upgrade

Upgrade or add package(s) to the system and install the required dependencies from sync repositories. Either a URL or file path can be specified. This is a “remove-then-add” process. See Upgrade Options below; also see Handling Config Files for an explanation on how pacman takes care of configuration files.

-F, --files

Consulte la base de données. Cette opération vous permet de retrouver les paquetages contenant un certain fichier, ou d'afficher les fichiers d'un paquetage donné. La recherche ne se fait que dans les paquetages répertoriés par votre base de donnée synchronisée. Voir les options de File ci-après.

-V, --version

Affiche la version et rend la main.

-h, --help

Affiche la syntaxe de l'actions demandée. Si aucune action n'est précisée, la page de syntaxe générale est affichée.

-b, --dbpath <chemin>

Specify an alternative database location (the default is /var/lib/pacman). This should not be used unless you know what you are doing. NOTE: If specified, this is an absolute path, and the root path is not automatically prepended.

-r, --root <chemin>

Specify an alternative installation root (default is /). This should not be used as a way to install software into /usr/local instead of /usr. NOTE: If database path or log file are not specified on either the command line or in pacman.conf(5), their default location will be inside this root path. NOTE: This option is not suitable for performing operations on a mounted guest system. See --sysroot instead.

-v, --verbose

Affiche le chemin de Root, des fichiers de configuration, de la base de données, du cache, etc.

--arch <arch>

Specify an alternate architecture.

--cachedir <répertoire>

Specify an alternative package cache location (the default is /var/cache/pacman/pkg). Multiple cache directories can be specified, and they are tried in the order they are passed to pacman. NOTE: This is an absolute path, and the root path is not automatically prepended.

--color <when>

Indique quand il convient d'afficher en couleurs. Les options valides sont always, never, or auto. always force l'écriture en couleurs ; never la désactive, et auto active automatiquement la couleur pour l'affichage sur un terminal.

--config <fichier>

Précise un fichier de configuration à utiliser.

--debug

Affiche les messages de débugage. Il est conseillé d’activer cette option pour signaler les bugs à la Communauté ou sur un forum de discussion.

--gpgdir <répertoire>

Fournit un répertoire de fichier où GnuPG pourra authentifier les signatures de paquetage (/etc/pacman.d/gnupg par défaut). Ce répertoire doit contenir deux fichiers : pubring.gpg et trustdb.gpg. pubring.gpg contient la clef publique de tous les paquetages ; trustdb.gpg, la base de données dite d'authentification, qui sert à confirmer que les clefs du trousseau sont sincères. NOTE: il faut donner ici un chemin absolu, le répertoire racine n'est pas a priori prépondérant.

--hookdir <répertoire>

Précise le répertoire contenant les fichiers d'amorce (/etc/pacman.d/hooks par défaut). On peut ici donner plusieurs répertoires d'amorce, mais les derniers cités auront précédence pour pacman. NOTE: il faut donner des chemins absolus, le répertoire racine n'étant pas a priori prépondérant.

--logfile <fichier>

Précise le nom du fichier-journal à créer. Il faut donner un chemin absolu ; peu importe ici le choix du répertoire-racine de l'installation.

--noconfirm

acquitte automatiquement tous les messages et demandes de confirmation. À éviter sauf si vous souhaitez exécuter pacman dans un script.

--confirm

Annule les effets d'une directive --noconfirm antérieure.

--disable-download-timeout

Désactive les limites par défaut sur la vitesse de transfert et les délais de connexion. À activer si vous avez des problèmes de proxy ou avec de ports sécurisés.

--sysroot <répertoire>

Specify an alternative system root. This path will be prepended to all other configuration directories and any repository servers beginning with file://. Any paths or URLs passed as targets will not be modified. This allows mounted guest systems to be properly operated on.

-d, --nodeps

Skips dependency version checks. Package names are still checked. Normally, pacman will always check a package’s dependency fields to ensure that all dependencies are installed and there are no package conflicts in the system. Specify this option twice to skip all dependency checks.

--assume-installed <package=version>

Add a virtual package "package" with version "version" to the transaction to satisfy dependencies. This allows disabling the specific dependency checks without affecting all dependency checks. To disable all dependency checking, see the --nodeps option.

--dbonly

Ajoute/supprime uniquement la base de donnée. Laisse tous les fichiers en place.

--noprogressbar

Ne pas afficher la barre de progression pendant le téléchargement. Pour les scripts qui appellent pacman et récupèrent le code de sortie.

--noscriptlet

Si un script d'install existe, ne pas l'exécuter. À éviter à moins de savoir ce que vous faites.

-p, --print

N'affiche que les cibles, sans effectuer les opérations de maintenance (sync, remove ou upgrade). Utiliser --print-format pour configurer l'affichage des noms des cibles. Le format par défaut est"%l", qui préfixes les URLs d'un -S, les noms de fichier de -U, et les pkgname-pkgver d'un -R.

--print-format <format>

Specify a printf-like format to control the output of the --print operation. The possible attributes are: "%a" for arch, "%b" for builddate, "%d" for description, "%e" for pkgbase, "%f" for filename, "%g" for base64 encoded PGP signature, "%h" for sha256sum, "%m" for md5sum, "%n" for pkgname, "%p" for packager, "%v" for pkgver, "%l" for location, "%r" for repository, "%s" for size, "%C" for checkdepends, "%D" for depends, "%G" for groups, "%H" for conflicts, "%L" for licenses, "%M" for makedepends, "%O" for optional depends, "%P" for provides and "%R" for replaces. Implies --print.

-w, --downloadonly

Télécharge tous les paquetages depuis le serveur, mais rien n'est installé ni mis à jour.

--asdeps

Installe tacitement des paquetages ; autrement dit, impose leur installation en leur donnant le statut de dépendances. C'est pratique pour makepkg et certains logiciels auxiliaires, qui ont besoin d'installer des paquetages comme dépendance avant de compiler le paquetage demandé.

--asexplicit

Installe un paquetage explicitement. Autrement dit, modifie la raison de leur installation en explicitement installé. C'est pratique lorsque vous souhaitez marquer qu'une dépendance doit explicitement être installée, et que l'option de suppression --recursive ne devra pas supprimer.

--ignore <paquetage>

Ordonne à pacman d'ignorer la mise à jour du paquetage même si une version plus récente est disponible. Il est ici possible de donner une liste de paquetages, séparés par des virgules.

--ignoregroup <groupe>

Ordonne à pacman d'ignorer la mise à jour de tous les paquetages d'un groupe même si une version plus récente est disponible. Il est ici possible de donner une liste de groupes, séparés par des virgules.

--needed

Installe seulement la cible qui n'est pas installée ou à jour.

--overwrite <glob>

Passe outre les vérifications de conflit de fichier et écrase les fichiers contradictoires. Si le paquetage qu'on est sur le point d'installer contient des fichiers déjà installés et de même nom que glob, cette option écrasera ces fichiers. L'option --overwrite n'autorise pas l'écrasement d'un répertoire par un fichier conflictuel ou par paquetage comportant un fichier ou un répertoire conflictuel. Il est possible de donner une liste de noms séparés par des virgules. Il est possible d'exclure des noms en les précédant d'un point d'exclamation. Les derniers noms cités sur la lignes ont priorité sur ceux qui précédent. Un point d'exclamation en tête ou un contre-oblique doit être "protégés" par un caractère d'échappement.

-c, --changelog

Lire l'historique des mises à jour d'un paquetage s'il y en a un.

-d, --deps

Restreint ou filtre l’affichage des paquetages installés en dépendances. Cette option peut être utilisée avec -t pour lister les paquetages orphelins installés comme dépendances et qui ne sont plus demandé par aucun paquetages installés.

-e, --explicit

Restrict or filter output to explicitly installed packages. This option can be combined with -t to list explicitly installed packages that are not required by any other package.

-g, --groups

Affiche le groupe avec les paquetages qu'il comporte. Faute de nom, tous les groupes seront affichés.

-i, --info

Affiche les informations sur le paquetage. L'option -p peut être utilisée pour rechercher le fichier d'un paquetage dans la base locale. Passer deux paramètres --info ou -i va afficher la liste des fichiers de sauvegarde et leur état de modification.

-k, --check

Check that all files owned by the given package(s) are present on the system. If packages are not specified or filter flags are not provided, check all installed packages. Specifying this option twice will perform more detailed file checking (including permissions, file sizes, and modification times) for packages that contain the needed mtree file.

-l, --list

Liste tous les fichiers inclus dans <paquetage>. Plusieurs paquetages peuvent être donnés sur la ligne de commande.

-m, --foreign

Restreint ou filtre l'affichage aux paquetages absents de la base de donnée synchronisée, c'est-à-dire généralement les paquetages que vous avez téléchargés manuellement et installés avec --upgrade.

-n, --native

Restrict or filter output to packages that are found in the sync database(s). This is the inverse filter of --foreign.

-o, --owns <fichier>

Search for packages that own the specified file(s). The path can be relative or absolute, and one or more files can be specified.

-p, --file

Précise à pacman que le nom donné dans la commande est un fichier et non un paquetage de la base de donnée. Pacman va décompresser le fichier et l'utiliser. Complément aux options --info et --list.

-q, --quiet

Affiche moins d'information pour certaines requêtes (utile quand la la sortie de pacman est utilisée dans un script ). L'option --search --quiet affichera uniquement le nom des paquetages sans leur version, leur groupe ou leur description. --owns --quiet affiche seulement le nom à la place du message “Ce fichier appartient à”; --groups --quiet affichera uniquement le nom du paquetage sans le nom du groupe, --list --quiet affichera uniquement les fichiers sans le nom du paquetage. --check --quiet affichera le du nom du paquetage et des fichiers manquants. L'option -Qq seule affiche uniquement les noms des paquetages sans leur version.

-s, --search <regexp>

Search each locally-installed package for names or descriptions that match regexp. When including multiple search terms, only packages with descriptions matching ALL of those terms are returned.

-t, --unrequired

Restreint ou filtre l'affichage aux seuls paquetages superflus, même en option, pour les paquetages déjà installés. Si cette option apparaît deux fois sur la ligne de commande, pacman incluera les paquetages requis optionnellement (c'est-à-dire pas systématiquement) par les paquetages installés.

-u, --upgrades

Restreint ou filtre l’affichage aux paquetages périmés sur le système local. N'utilise que les versions du paquetage pour trouver les paquetages périmés. Ne vérifie pas les remplacements. L'option n'est vraiment efficace qu'en conjonction avec une synchronisation de la base de donnée : -Sy.

-c, --cascade

Supprime tous les paquetages cibles ainsi que le ou les paquetages dont ils dépendent. Cette opération est récursive et doit être employée avec prudence puisqu'elle est susceptible de supprimer implicitement plusieurs paquetages potentiellement utiles par ailleurs.

-n, --nosave

Demande à pacman d'ignorer la variable backup. Normalement quand un fichier va être supprimé du système la base de donnée est vérifiée pour voir si le fichier doit être renommé avec l'extension .pacsave.

-s, --recursive

Pour chaque paquetage demandé, le supprime avec toutes ses dépendances, à condition que ces dépendances (A) ne soient pas nécessaires à un autre paquetage installé et (B) qu'elles n'aient pas été installées explicitement par l'utilisateur. Cette option est l'inverse de l'option --sync. Pour se passer de la condition (B), appeler l'option deux fois sur la même ligne de commande.

-u, --unneeded

Supprime les cibles qui ne sont plus utilisées par aucun paquetage. Ceci est très utile quand vous supprimez un groupe avec l'option -c pour ne pas casser les dépendances.

-c, --clean

Remove packages that are no longer installed from the cache as well as currently unused sync databases to free up disk space. When pacman downloads packages, it saves them in a cache directory. In addition, databases are saved for every sync DB you download from and are not deleted even if they are removed from the configuration file pacman.conf(5). Use one --clean switch to only remove packages that are no longer installed; use two to remove all files from the cache. In both cases, you will have a yes or no option to remove packages and/or unused downloaded databases.

Si vous utilisez le cache partagé du réseau, allez voir l'option CleanMethod dans le pacman.conf(5).

-g, --groups

Affiche tous les membres d'un groupe de paquetages. Si aucun groupe n'est saisi, tous les groupes vont être affichés. Répéter l'option à la commande pour voir tous les groupes avec leurs membres.

-i, --info

Display information on a given sync database package. Passing two --info or -i flags will also display those packages in all repositories that depend on this package.

-l, --list

Liste tous les fichiers du serveur indiqué. Plusieurs serveurs peuvent être indiqués dans la commande.

-q, --quiet

Show less information for certain sync operations. This is useful when pacman’s output is processed in a script. Search will only show package names and not repository, version, group, and description information; list will only show package names and omit databases and versions; group will only show package names and omit group names.

-s, --search <regexp>

Recherche dans chaque paquetage installé localement le nom ou la description correspondant à l'expression régulière “regexp”. Si vous indiquez plusieurs sélecteurs, seuls les paquetages dont la description active TOUS les sélecteurs seront affichés.

-u, --sysupgrade

Met à jour tous les paquetages périmés. Chaque paquetage installé sur votre système va être examiné et mis à jour si un paquetage plus récent existe. Une liste de tous les paquetages à mettre à jour sera affichée et demandera une confirmation à l'utilisateur avant de lancer la mise à jour. Les dépendances sont automatiquement résolues et sont installés ou mises à jour si besoin.

Soumettre cette option deux fois pour activer la rétrogration de paquetage. Dans ce cas pacman va sélectionner les paquetages synchronisés dont la version ne correspond pas avec la version locale. Cela peut être utile pour les utilisateurs qui passent du dépôt testing au dépôt stable.

Il est possible de spécfier manuellement d'autres cibles : ainsi -Su foo déclenchera une mise à jour du système pour installer ou mettre à jour le paquetage "foo".

-y, --refresh

Download a fresh copy of the master package databases (repo.db) from the server(s) defined in pacman.conf(5). This should typically be used each time you use --sysupgrade or -u. Passing two --refresh or -y flags will force a refresh of all package databases, even if they appear to be up-to-date.

--asdeps <paquetage>

Marque un paquetage comme non installé a priori pour forcer sa (ré-)installation comme dépendance.

--asexplicit <paquetage>

Mark a package as explicitly installed; in other words, set their install reason to be explicitly installed. This is useful if you want to keep a package installed even when it was initially installed as a dependency of another package.

-k, --check

S'assure que la base de données des paquetages est cohérente. Vérifie pour cela que tous les fichiers requis sont présents et que les paquetages installés possèdent les dépendances requises, ne sont pas en conflit mutuel et que plusieurs paquetages ne comportent pas le même fichier. Pour vérifier sur les bases de données synchronisées que toutes les dépendances sont résolues, appeler cette option deux fois sur la liggne de commande.

-q, --quiet

Supprime les messages en cas de succès des opérations sur la base de données.

-y, --refresh

Download fresh package file databases (repo.files) from the server. Use twice to force a refresh even if databases are up to date.

-l, --list

Liste des fichiers du paquetage indiqué.

-x, --regex

Interprète chaque requête comme une expression regulière.

-q, --quiet

Affiche moins de détails our certaines opérations sur fichier. Utile si la sortie standard de pacman est utilisée dans un script ; mais vous pourriez préférer l'option --machinereadable à la place.

--machinereadable

Affiche pour chaque fichier une ligne au format machine. Ce format est dépôt\0pkgname\0pkgver\0chemin\n, où \0 est le caractère NULL et \n un caractère fin-de-ligne..

Pacman utilise la même logique que rpm pour déterminer l'action sur les fichiers qui doivent être sauvegardés. Pendant une mise à jour, il utilise 3 hashs MD5 pour chaque fichier de sauvegarde pour déterminer l'action adéquate : une pour le fichier originel installé, une pour le nouveau fichier qui doit être installé, et une pour le fichier présent sur le système. Après avoir comparé ces 3 hashs, voici ce qui peut se passer :

original=X, current=X, nouveau=X

Tous les fichiers sont identiques, donc on gagne un tour. Installation du nouveau fichier.

original=X, current=X, nouveau=Y

Le fichier actuel est strictement identique à l'original mais le nouveau est différent. Si l'utilisateur n'a jamais modifié le fichier et que le nouveau contient de nouvelles fonctionnalités / correction de bugs, nous installons le nouveau.

original=X, current=Y, nouveau=X

Toutes les versions contiennent exactement le même fichier, mais celui présent sur le système a été modifié. Dans ce cas, nous laissons le fichier current en place.

original=X, current=Y, nouveau=Y

Le fichier nouveau est identique au current. Installation du nouveau fichier.

original=X, current=Y, nouveau=Z

Les trois fichiers sont différents, donc nous installons le fichier nouveau avec l'extension .pacnew et informons l'utilisateur, qu'il peut remplacer le fichier original après l'avoir modifié.

original=NULL, current=Y, nouveau=Z

The package was not previously installed, and the file already exists on the file system. Install the new file with a .pacnew extension and warn the user. The user must then manually merge any necessary changes into the original file.

pacman -Ss ne.hack

Recherche l'expression régulière "ne.hack" dans la base de données.

pacman -S gpm

Télécharge et installe gpm et toutes ses dépendances.

pacman -U /home/user/ceofhack-0.6-1-x86_64.pkg.tar.gz

Installe le paquetage ceofhack-0.6-1 depuis un fichier .tar.gz local.

pacman -Syu

Met à jour la liste des paquetages, et met à niveau tous les paquetages ensuite.

pacman -Syu gpm

Met à jour la liste des paquetages, les met tous à niveau puis installe gpm s'il n'était pas déjà présent.

Voir pacman.conf(5) pour de plus amples informations pour configurer pacman en utilisant le fichier pacman.conf.

alpm-hooks(5), libalpm(3), makepkg(8), pacman.conf(5)

Consulter le site internet de pacman à l'adresse https://.archlinux.org/pacman/ pour de nouvelles informations sur pacman et ses outils associés.

Bogues ? C'est une blague ; il n'y a pas de bogues dans ce logiciel. Mais s'il y en a, envoyez un rapport de bogue contenant autant de détails que possible dans la section Pacman du système de suivi de bogues de Arch Linux.

Développeurs actuels :

•Allan McRae <allan@archlinux.org>
•Andrew Gregory <andrew.gregory.8@gmail.com>
•Morgan Adamiec <morganamilo@archlinux.org>

Contributeurs antérieurs majeurs :

•Judd Vinet <jvinet@zeroflux.org>
•Aurelien Foret <aurelien@archlinux.org>
•Aaron Griffin <aaron@archlinux.org>
•Dan McGee <dan@archlinux.org>
•Xavier Chantry <shiningxc@gmail.com>
•Nagy Gabor <ngaba@bibl.u-szeged.hu>
•Dave Reisner <dreisner@archlinux.org>
•Eli Schwartz <eschwartz@archlinux.org>

Pour des contributeurs supplémentaires, utiliser git shortlog -s sur le dépôt pacman.git.

La traduction française de cette page de manuel a été créée par Marc Poiroud <marci1@archlinux.fr> et Jean-Jacques Brioist <jean.brioist@numericable.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

15 mars 2024 Pacman 6.1.0